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

时间:2015-12-17 09:28:16

标签: javascript angularjs http

所以,我正在做这个请求:

$http({
    method: 'GET',
    url: query,
    headers: { 'api-key': 'test-api-key' }
});

在Chrome开发者工具网络标签中,我可以看到正在发送的请求:

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

问:可能会有哪些原因导致标头未添加到请求中?

1 个答案:

答案 0 :(得分:2)

您正在使用自定义标头创建跨域Ajax请求。

这使得它成为一个复杂的请求,因此浏览器必须发送a pre-flight OPTIONS request才能获得发出跨域Ajax请求的权限。

如果服务器正确响应OPTIONS请求,浏览器将使用您想要的附加标头发出GET请求。