【发布时间】:2016-12-11 01:31:42
【问题描述】:
我正在使用 Ionic 2 (2.0.0-beta.10) 开发一个项目。我尝试通过请求传递授权令牌。但是没有发送标头。我试图通过请求传递的其他标头也没有被发送。
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 收到带有以下标头的请求:
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
数据(正文)正确,只有我无法解决的标题问题。 任何帮助将不胜感激。
【问题讨论】:
-
你能尝试传递这样的标题吗
this.http.post(url, data, {headers:headers}).... -
我尝试这样做,但是在发送请求时我在 REST API 中收到的标头如下: Host www.example.com Connection keep-alive Content-Length 45 Origin 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 Content-Type text/plain Accept / Referer localhost:8100/?restart=794567 Accept-编码 gzip,放缩 Accept-Language en-US,en;q=0.8
-
谢谢,我确实已经阅读了这个问题。然而,没有一个答案实际上描述了这个问题的解决方案。根据 Bala Abhinav 的说法,他设法解决了这个问题,但他没有提到如何......“这个问题是一个 CORS 问题。现在已经解决了。谢谢。——Bala Abhinav”
-
您是否设置了在您的 REST API 中授权的标头?
Access-Control-Allow-Headers: Authorization