【问题标题】:How to add Headers on AngularJS 1.6 correctly如何在 AngularJS 1.6 上正确添加标题
【发布时间】:2018-01-22 22:14:14
【问题描述】:

我正在尝试使用 $http 在获取请求中添加标头。

这是我的一段代码:

this.http.defaults.headers.common['Authorization'] = 'Bearer mytoken123123';
this.http.defaults.headers.common['Access-Control-Allow-Origin'] =  '*';
this.http.defaults.headers.common['Access-Control-Allow-Methods'] ='GET, POST, PATCH, PUT, DELETE, OPTIONS';
this.http.defaults.headers.common['Access-Control-Allow-Headers'] = 'Origin, Content-Type, X-Auth-Token';
this.http.defaults.headers.common['Access-Control-Allow-Credentials'] = 'true';

this.http.get(" https://xxxxxx/GetUserProfille?User_Id=" + response.data.Data.User_Id + "&LanguageCode=" + this.currentLang).then((response) => {
     console.log(response)
});

这就是错误。

angular.min.js:107 OPTIONS 
https://xxxxxxx/GetUserProfille?User_Id=11641&LanguageCode=it 405 (Method Not Allowed)
https://xxxxxxx/GetUserProfille?User_Id=xxx&LanguageCode=xx: Response to 
preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://localhost:8080' is therefore not allowed access. The response had HTTP status code 405.

angular.min.js:122 Possibly unhandled rejection: {"data":null,"status":-1,"config":{"method":"GET","transformRequest":[null],"transformResponse":[null],"jsonpCallbackParam":"callback","url":" https://staging.paladintrue.com/api/paladin/GetUserProfille?User_Id=11641&LanguageCode=it","headers":{"Accept":"application/json, text/plain, */*","Authorization":"bearer 2kqV-V3v1t_6MtI8Vg8BPpoq2BXR6Q1vqEu9rKw6Qd86CHqKxtYIQfjJhUJqM5Jzi2K0h6sAXaltIxCOoEXUCz8UeHFs7HGhxY2t22yBPUuRRGzmu7O52y_AjdHwlijsEW6KDzqWzhR5hSqNrYm51yHCNmfhkkhocOt8_EDwNljnKycIdYXOOApzaSF_Jm88eJ9cMilTavsmgqd_DAAuSV24aNqf6cJdZYE0w_KTHk7P--oul4SEgpfQYW64PNSU","Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, PATCH, PUT, DELETE, OPTIONS","Access-Control-Allow-Headers":"Origin, Content-Type, X-Auth-Token","Access-Control-Allow-Credentials":"true"}},"statusText":""}

如果你在浏览器中看到headers请求,看来我添加的headers都在Access-Control-Request-Headers:access-control-allow-credentials,access-control-allow-headers,access-control-allow-methods,access-control-allow-origin,authorization

所以,我知道添加标题不是正确的方法。

【问题讨论】:

    标签: javascript angularjs http-headers httprequest


    【解决方案1】:

    您可以将 HTTP 标头作为 $http configuration object 的一部分传递:

    $http.get('https://www.example.com/', {
        headers: {
            'Authorization': 'Bearer mytoken123123',
            'Access-Control-Allow-Origin': '*'
            // etc.
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-06
      • 2017-10-08
      • 2019-07-14
      • 2018-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多