Javascript 无法在angularJS中为$http.get添加自定义标头

Javascript 无法在angularJS中为$http.get添加自定义标头,javascript,angularjs,http,Javascript,Angularjs,Http,所以,我在做这个请求: $http({ method: 'GET', url: query, headers: { 'api-key': 'test-api-key' } }); 在Chrome开发者工具网络选项卡中,我可以看到正在发送的请求: Q:有什么可能的原因没有将头添加到请求中?您正在使用自定义头进行跨源Ajax请求 这使得它成为一个复杂的请求,因此浏览器必须发送才能获得跨源Ajax请求的权限 如果且当服务器正确响应选项请求时,浏览器将发出带有所需附加标题的GE

所以,我在做这个请求:

$http({
    method: 'GET',
    url: query,
    headers: { 'api-key': 'test-api-key' }
});
在Chrome开发者工具网络选项卡中,我可以看到正在发送的请求:


Q:有什么可能的原因没有将头添加到请求中?

您正在使用自定义头进行跨源Ajax请求

这使得它成为一个复杂的请求,因此浏览器必须发送才能获得跨源Ajax请求的权限


如果且当服务器正确响应选项请求时,浏览器将发出带有所需附加标题的GET请求。

好的,明白了,因此启用CORS,在服务器端将
Access Control Allow Origin
设置为
*
,应使服务器能够响应选项请求,并应添加自定义标头?但是你知道为什么使用Postman?Chrome打包的应用程序可以拥有跨域权限吗。有关详细信息,请参阅。遗憾的是,添加
访问控制允许源站
响应标题并将其设置为
*
没有帮助。@Marcus-否,您需要使用
200 OK
响应,其中包括合适的
访问控制允许源站
访问控制允许标题
(可能还有
Access Control Allow Methods
)头。您正在添加自定义头,仅允许源文件是不够的。MDN文档中有一个例子链接到上述.Err。可以说您正在添加的
api键
头是允许的吗?!
Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8,sv;q=0.6
Access-Control-Request-Headers:accept, api-key
Access-Control-Request-Method:GET
Cache-Control:no-cache
Connection:keep-alive
Host:my-host.myhost.net
Origin:http://localhost:24153
Pragma:no-cache
Referer:http://localhost:24153/
User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.80 Safari/537.36
X-FirePHP-Version:0.0.6