问题产生原因:
Set-Cookie
、Set-Cookie2
这2个字段,无论是同域还是跨域请求;
simple response header
”和“Access-Control-Expose-Headers
” (两个名词的解释见下方)。
所以getAllResponseHeaders()
只能拿到限制以外(即被视为safe
)的header字段,而不是全部字段;而调用getResponseHeader(header)
方法时,header
参数必须是限制以外的header字段,否则调用就会报Refused to get unsafe header
的错误。
具体可以看看segmentfault的一篇文章:
"simple response header"包括的 header 字段有:Cache-Control,Content-Language,Content-Type,Expires,Last-Modified,Pragma;
"Access-Control-Expose-Headers":首先得注意是"Access-Control-Expose-Headers"进行跨域请求时响应头部中的一个字段,对于同域请求,响应头部是没有这个字段的。这个字段中列举的 header 字段就是服务器允许暴露给客户端访问的字段。