我正在尝试从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/

10-12 06:59