AngularJS:$ http标头默认参数未设置权限

时间:2016-03-07 22:47:58

标签: javascript angularjs ajax cors

我遇到了与此问题相同的问题:Angularjs set a authorization header

我需要在我的请求标头中包含授权令牌。我尝试使用几种方法 - 我尝试设置$ http默认值如下:

app.config(function($httpProvider) {
    $httpProvider.defaults.headers.common['Authorization'] = '1234567';
});

也是这样的:

app.run(function($http) {
    $http.defaults.headers.common['Authorization'] = '1234567';
});

此外,我尝试在我的服务方法中构建我的请求:

var request = {
    method: 'GET',
    url: 'my/api/endpoint',
    headers: {
        'Authorization': '1234567'
    }
};

$http(request).then(function(response) {
    console.log(response);
});

在所有这些情况下,我最终在请求标题中看到的内容如下所示:

Access-Control-Request-Method: GET
Origin: http://localhost:8000
Access-Control-Request-Headers: accept, authorization
Accept: */*
Referer: http://localhost:8000/
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8

我希望在那里看到另一个键值对,例如:

Authorization: '1234567'

但是,我没有。

我正在使用Angular 1.4.9版,我想知道这个版本是否特定于此版本?

解决: 事实证明这是在Apache配置服务器端解决的。但是 - 值得注意的是,授权标头实际上包含在预检请求标头中而不是主请求中,这就是为什么它似乎不在标头中。

1 个答案:

答案 0 :(得分:0)

我在拦截器中执行它可以拦截所有请求并将头部添加到Auth。也许你可以试试。 [like this