【发布时间】:2017-06-26 09:39:06
【问题描述】:
我正在像这样设置我的标头和 http 调用:
var headers = new Headers();
headers.set('Authorization','Bearer xxxxxxxxxxx');
this.http.get('http://localhost:8080/outputEndpoints', {
headers: headers
}).
map(res => res.text())
.subscribe(
data=> console.log(data),
error=> console.log("Getting Error")
);
有了这个,我希望标题是:
Accept:*/*
Accept-Encoding:gzip, deflate, sdch, br
Accept-Language:es,ca;q=0.8,en-GB;q=0.6,en;q=0.4,fr;q=0.2
Access-Control-Request-Headers:authorization, content-type
Authorization: "Bearer xxxxxxxxxxxx"
Access-Control-Request-Method:GET
Connection:keep-alive
Host:localhost:8080
Origin:http://localhost:3000
Referer:http://localhost:3000/
User-Agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
相反,我得到以下信息(没有使用令牌授权):
Accept:*/*
Accept-Encoding:gzip, deflate, sdch, br
Accept-Language:es,ca;q=0.8,en-GB;q=0.6,en;q=0.4,fr;q=0.2
Access-Control-Request-Headers:authorization, content-type
Access-Control-Request-Method:GET
Connection:keep-alive
Host:localhost:8080
Origin:http://localhost:3000
Referer:http://localhost:3000/
User-Agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
编辑:
一般信息是:
Request URL:http://localhost:8080/outputEndpoints
Request Method:OPTIONS
Status Code:401
Remote Address:[::1]:8080
所以 OPTIONS 调用失败了。在其他应用程序中,一旦 OPTIONS 调用被接受,它就会发出 GET 请求,您可以在其中找到已设置的身份验证令牌。这意味着由于某种原因 OPTION 调用它没有被接受。
当使用 CURL 或 SOAP UI 进行调用时,它工作正常,所以我认为这不是 CORS 的问题。我是对的?
任何想法或指南都会很有帮助。
【问题讨论】:
-
您找到解决方案了吗?同样的问题
标签: angular http-headers