Я хочу реализовать аутентификацию. На самом деле, мой проект строится в Angular 2 Beta, но я использую образец проверки подлинности this для тестирования. У меня есть собственный API, и я просто добавил его URL к этому образцу проекта. Это не сработало) Он показывает эту ошибку:Ошибка аутентификации: ответ на предполетный период имеет недопустимый код состояния HTTP 405
Failed to load resource: the server responded with a status of 405 (Method Not Allowed)
Fetch API cannot load http://blah-blah-blah. Response for preflight has invalid HTTP status code 405
Вот метод Логин:
login(event, phone, password) {
event.preventDefault();
window.fetch('http://blah-blah-blah', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
phone, password
})
})
.then(status)
.then(json)
.then((response:any) => {
localStorage.setItem('access_token', response.id_token);
this.router.parent.navigateByUrl('/home');
})
.catch((error) => {
alert(error.message);
console.log(error.message);
});
}
Я думаю, вы пропустили мой ответ. Проблема не в вашем угловом приложении. Он находится на API-интерфейсе на стороне сервера, который вы пытаетесь вызвать. Вот где вы должны исправить эту проблему и включить CORS. Поэтому в основном вы должны включить CORS для конечной точки 'http: // api.paydacard.kz/identity/login'. В вашем вопросе вы упомянули, что это ваш собственный API, поэтому не должно быть проблемой его обновления. –
Я получил его) Но я не могу настроить API, у меня нет доступа к нему. –
О, тогда у вас есть проблема. Если вы не можете изменить код этого API, вам нужно будет настроить другой API, размещенный в том же домене, что и ваше угловое приложение, и который будет служить мостом между вашим доменом и удаленным доменом. Таким образом, в основном вы отправите запрос AJAX из своего углового приложения в этот локальный API, например '/ myapi', и он позаботится о делегировании вызова, сделав запрос на стороне сервера удаленному API. –