所以,我正在做这个请求:
$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
问:可能会有哪些原因导致标头未添加到请求中?
答案 0 :(得分:2)
您正在使用自定义标头创建跨域Ajax请求。
这使得它成为一个复杂的请求,因此浏览器必须发送a pre-flight OPTIONS request才能获得发出跨域Ajax请求的权限。
如果服务器正确响应OPTIONS请求,浏览器将使用您想要的附加标头发出GET请求。