我使用 AngularJS 托管开发了一个简单的应用程序here。我正在使用我自己在 Laravel 托管中开发的 APIhere。当我尝试使用 Firefox 登录该应用程序时,它工作正常。我的 API 接受飞行前 OPTIONS 请求并以 200 OK 响应。最后,POST 请求生成一个令牌,用户登录。
另一方面,当 Chrome 发送飞行前 OPTIONS 请求时,它会收到 403 返回,并在控制台中给出以下错误:
XMLHttpRequest cannot load http://angulairapi.rohanchhabra.in/auth. Invalid HTTP status code 403
我也尝试通过 Postman REST 客户端在 /auth 上发送 OPTIONS 请求,并且它按预期返回 200 OK。为什么 Chrome 会有这样的表现?我缺少什么?
首先,您必须发送这些标头(通配符有时工作不正确):
Access-Control-Allow-Headers: X-Requested-With, content-type
Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS
第二个(也是重要的)从配置中的 AngularJs 服务 $httpProvider 中删除标头:
myApp.config(['$httpProvider', function($httpProvider) {
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common['X-Requested-With'];
}
]);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)