我正在Angular中创建一个登录页面。登录API调用(POST)后,我得到一个令牌作为响应。在控制器中,我试图在" common"中设置此令牌。标题,以便我可以使用它来授权所有进一步的API调用:
LoginSrv.authenticate($scope.credentials).then(
function(data){
$http.defaults.headers.common.Authorization = data.token;
$state.go('nextpage');
}
);
下一页还有一个POST API调用。在调用我检查调试器中的请求标头之后,我在标头中看到该标记。此响应再次导航到第三页(这次我没有再次设置标题)。在第三页,当我调用API(GET或POST)时,"授权"这次在标题中不可用。我不确定这是如何自行消除的。
答案 0 :(得分:1)
鉴于您的第三个请求是跨域,您的服务器似乎没有正确响应预检浏览器OPTIONS请求,该请求用于在发送请求之前检查可用的方法等。这不是一个角度问题。一种解决方案是将服务器配置为正确响应此OPTIONS请求。此SO链接(在之前的评论中提供)更详细地解释了潜在解决方案AngularJS performs an OPTIONS HTTP request for a cross-origin resource