Angular $http 未在选项 pre-flight 中发送 header
Angular $http not sending header in OPTIONS pre-flight
我正在尝试使用需要为 POST
请求定义特定 header 的 $http 服务连接到 API:
app.run(['$http', function($http) {
$http.defaults.headers.post.hello = 'world';
}]);
但是,我的 Angular 应用程序在 POST
之前发送了一个 OPTIONS
请求,它似乎没有发送 custom-defined header。
查看此 Plunker 中的网络选项卡:http://plnkr.co/edit/tcqIb2q9zIQb3nf2SzyT
并观察请求应该发送值为 world
的 hello
header,但实际上不是:
我在 access-control-request-header
中看到了 hello
,但它不应该单独一行吗?为什么它不发送值 world
?
添加header时,由于是跨域,requests首先通过OPTIONS方式向对方域的资源发送HTTP请求,以判断实际请求是否是安全发送。在此请求中,header 名称在 access-control-request-headers 中发送,以检查发送是否安全 header。
如果可以安全发送,则 header 将与 POST 一起发送。
来源:https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS#Preflighted_requests
我正在尝试使用需要为 POST
请求定义特定 header 的 $http 服务连接到 API:
app.run(['$http', function($http) {
$http.defaults.headers.post.hello = 'world';
}]);
但是,我的 Angular 应用程序在 POST
之前发送了一个 OPTIONS
请求,它似乎没有发送 custom-defined header。
查看此 Plunker 中的网络选项卡:http://plnkr.co/edit/tcqIb2q9zIQb3nf2SzyT
并观察请求应该发送值为 world
的 hello
header,但实际上不是:
我在 access-control-request-header
中看到了 hello
,但它不应该单独一行吗?为什么它不发送值 world
?
添加header时,由于是跨域,requests首先通过OPTIONS方式向对方域的资源发送HTTP请求,以判断实际请求是否是安全发送。在此请求中,header 名称在 access-control-request-headers 中发送,以检查发送是否安全 header。
如果可以安全发送,则 header 将与 POST 一起发送。
来源:https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS#Preflighted_requests