http - ionic 2/Angular 2/CORS : HTTP Headers not being sent with request

标签 http angular cors ionic2

我正在使用 Ionic 2 (2.0.0-beta.10) 开发一个项目。我尝试通过请求传递授权 token 。但是标题没有被发送。我试图通过请求传递的其他 header 也没有被发送。

let url = 'http://www.example.com/savedata';
let data = JSON.stringify({ email: 'test@test.com', password: '123456' });

let headers = new Headers();

headers.append('Content-Type', 'application/json');
headers.append('Authorization', 'Bearer ' + "tokenContent");

let options = new RequestOptions({ headers: headers });

this.http.post(url, data, options).map(res => res.json()).subscribe(data => {

                console.log("it worked");

}, error => {
                console.log("Oooops!");
});

我的 REST API 收到带有以下 header 的请求:

Host:               www.example.com 
Connection:         keep-alive  
Access-Control-Request-Method:  POST    
Origin:             http://evil.com/    
User-Agent:         Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36   
Access-Control-Request-Headers: authorization, content-type 
Accept:             */* 
Referer:            http://localhost:8100/?restart=794567   
Accept-Encoding:        gzip, deflate, sdch 
Accept-Language:        en-US,en;q=0.8  

数据(正文)正确,只有标题问题我无法解决。 任何帮助将不胜感激。

最佳答案

这个问题在这里有答案: https://stackoverflow.com/a/45286959/4119650

Headers.append() 不更新对象,它返回它的一个克隆。通过实例化 Headers 对象然后调用 headers.append(),不会使用 append 的结果。 相反,您可能需要这样做:

headers: Headers = new Headers().append('Content-Type', 'application/json').append('Authorization', 'Bearer' + "tokenContent");

Headers 无论如何都已弃用,应替换为 HttpHeadersHttpClienthttps://angular.io/api/common/http/HttpHeaders https://angular.io/guide/http

关于http - ionic 2/Angular 2/CORS : HTTP Headers not being sent with request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38775587/

相关文章:

php - 合并两个 mp3 php

wordpress - 使用 RCurl 登录 WordPress

html - Angular2中的Aria角色属性

http - 是否可以让浏览器缓存 OPTIONS 结果

javascript - OPTIONS 请求得到 "401 Unauthorized"响应

http - Squid 在创建代理服务器时拒绝所有网站

java - 从 URLConnection 读取

javascript - 从 json 数据应用 ionic 选择过滤器选择

angular - 动态构建具有值和标签的表单控件的方法

javascript - node.js express,一个非常奇怪的行为