angular – 身份验证错误:预检的响应具有无效的HTTP状态代码405

前端之家收集整理的这篇文章主要介绍了angular – 身份验证错误:预检的响应具有无效的HTTP状态代码405前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想实现身份验证.实际上,我的项目是在Angular 2 Beta中构建的,但我正在使用 this身份验证示例进行测试.我有自己的API,只是将其url添加到此示例项目中.它没有用)它显示了这个错误
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);
});
}
看起来您正在尝试进行跨域AJAX调用.为此,您的远程服务器API必须支持 CORS.飞行前请求是一个特殊请求,浏览器在发出实际POST请求之前使用OPTIONS动词发送:
OPTIONS http://blah-blah-blah

服务器必须使用正常的200状态代码进行响应,并包含正确的CORS标头,指示允许哪些域向其发出请求.只有在那之后才会发送实际的POST请求.

您的API的问题是端点向此OPTIONS请求返回了405 Not Noted状态代码.因此,您需要修复API,使其支持OPTIONS动词.

原文链接:https://www.f2er.com/angularjs/143218.html

猜你在找的Angularjs相关文章