我有一个有效的跨域 Web 服务调用,我可以在其中取回有效负载,但我无法读取响应中的标头。 Chrome 可以很好地显示请求中的标头,但它们在 jQuery 的成功处理程序中不可用。
var data_obj = { "userName": "myUser", "password": "000000" }
$.ajax({
type: "POST",
url: 'https://localhost:8443/AuthService.svc/auth',
contentType: "application/json; charset=utf-8",
data: JSON.stringify(data_obj),
dataType: "json",
success: function(data, textStatus, jqXHR) {
console.log(jqXHR.getAllResponseHeaders());
}
});
唯一记录到控制台的是:
内容类型:application/json;字符集=utf-8
这是 Chrome 报告的 OPTIONS 和 POST 响应标头的内容,请注意,我正在尝试公开Foo
and Authorization
via Acccess-Control-Expose-Headers
:
OPTIONS
Acccess-Control-Expose-Headers:Content-Type, Foo, Authorization
Access-Control-Allow-Headers:Content-Type, Foo, Authorization
Access-Control-Allow-Methods:POST, PUT, DELETE
Access-Control-Allow-Origin:*
Access-Control-Max-Age:1728000
Content-Length:0
Date:Mon, 20 Jul 2015 16:26:00 GMT
Foo:Bar
POST
Acccess-Control-Expose-Headers:Content-Type, Foo, Authorization
Access-Control-Allow-Headers:Content-Type, Foo, Authorization
Access-Control-Allow-Origin:*
Authorization: custom_access_token = some_token
Content-Length:36
Content-Type:application/json; charset=utf-8
Date:Mon, 20 Jul 2015 16:26:00 GMT
Foo:Bar
谁能弄清楚为什么我只能访问Content-Type
我的成功回调中的标头?
Update
注意我重构了上面的内容以使用XMLHttpRequest
,该行为仍然存在。