我正在尝试从ajax请求中获取响应 header ,但jQuery的getAllResponseHeaders xhr方法仅显示“Content-Type” header 。有人知道为什么吗?
这是响应头
访问控制允许凭据:true
访问控制允许标题:If-Modified-Since,Cache-Control,Content-Type,Keep-live,X-Requested-With,授权
访问控制允许方法:GET,PUT,POST,DELETE,OPTIONS
访问控制允许来源:*
访问控制最大年龄:1728000
授权:apikey =“apikey1” AuthenticationToken =“62364GJHGJHG”
连接方式:保持活跃
内容长度:240
内容类型:application/json;字符集= utf-8
X-Powered-By:Express
这是成功函数
params.success = function (response, textStatus, jqXHR) {
console.log(jqXHR.getAllResponseHeaders())
}
这是它记录的内容...
内容类型:application/json;字符集= utf-8
最佳答案
刚遇到这个。这是因为您正在执行CORS请求,并且没有公开Location header 。
您需要在Express中的飞行前CORS响应中添加Access-Control-Expose-Headers
:
res.header('Access-Control-Expose-Headers', 'Content-Type, Location');
res.send(200);
那将解决问题。
关于javascript - XmlHttpRequest getAllResponseHeaders()不返回所有 header ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8945587/