#javascript #node.js #reactjs #rest #redux
Вопрос:
Я пытаюсь выполнить простую аутентификацию при входе в систему с помощью моего REST api, созданного с использованием модуля passport в nodejs . Мой интерфейс вызывает эту функцию, но эта функция возвращает ошибку, и аутентификация не выполняется . Сообщение fn не работает .
export const loginUser = (creds) => (dispatch) => {
// We dispatch requestLogin to kickoff the call to the API
dispatch(requestLogin(creds))
return fetch(baseUrl 'users/login', {
method: 'POST',
headers: {
'Content-Type':'application/json'
},
body: JSON.stringify(creds)
})
.then(response => {
console.log("HELLO");
if (response.ok) {
return response;
} else {
var error = new Error('Error ' response.status ': ' response.statusText);
error.response = response;
throw error;
}
},
error => {
throw error;
})
.then(response => response.json())
.then(response => {
console.log("HELLO2");
if (response.success) {
// If login was successful, set the token in local storage
localStorage.setItem('token', response.token);
localStorage.setItem('creds', JSON.stringify(creds));
console.log(response);
// Dispatch the success action
// dispatch(fetchFavorites());
dispatch(receiveLogin(response));
}
else {
var error = new Error('Error ' response.status);
error.response = response;
throw error;
}
})
.catch(error => dispatch(loginError(error.message)))
};
Ответ №1:
Итак, причина этого заключалась в том, что мое приложение размещало статические файлы, а также сервер вместе . Таким образом, сервер отвечал файлом 404 вместо данных json в качестве ответа . Решено, когда я разделил клиент и сервер отдельно и разместил их на разных платформах .