【发布时间】:2017-07-08 08:56:30
【问题描述】:
我在 angularjs 中使用以下控制器
app.controller('download-posts-controller', function($scope, $http) {
$http.get('http://localhost:8090/posts', {
headers: {
'Authorization': 'Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJQYXNjYWwiLCJ1c2VySWQiOiIxMjMiLCJyb2xlIjoiYWRtaW4ifQ.4D9TUDQAgIWAooyiMN1lV8Y5wVCrIF4rAeGzFzelSE9diqHMik9WE9x4EsNnEcxQXYATjxAZovpp-m72LpFADA'
}
}).success(function(response){
window.alert(response)
});
});
它应该只使用 GET 请求调用我的 API,在标头中发送授权令牌以验证服务器上的请求。
我收到未经授权的 401。我的 API 层启用了 CORS,所以这应该不是问题。
在浏览器检查中,我发现它似乎出于某种原因发出了一个 OPTIONS 请求,并且也没有在标头中发送身份验证令牌。
任何想法我做错了什么? 我对 angularjs 很陌生
【问题讨论】:
-
您是否在 API 控制器中的任何位置返回
401状态代码 -
确保您的令牌有效
-
是的,我确实在服务器上收到了 401,同一个令牌绝对是有效的,因为它是我用于开发的非过期令牌,我可以将它用于邮递员或我的相同请求android 应用程序(或我的网站的 apache wicket 等价物,因为我刚刚迁移到 angular),它给了我期望的响应。
-
我可以让它发出实际的 GET 而不是不需要的 OPTIONS 请求的唯一方法是从请求中删除标头组件。然后我尝试了一个 http 拦截器来添加标头,但这也不起作用。
标签: javascript angularjs http authentication http-headers