我有以下 jQuery 代码:
$.ajax({
type: "GET",
url: url,
complete: function( data ){
console.info( data.getResponseHeader("WWW-Authenticate") );
}
});
这将返回 null。在 Firebug 中,我可以看到,标题“WWW-Authenticate”是由服务器发送的。
有什么办法可以得到header吗?如果我可以在 Firebug 中看到它,那么应该可以在 jQuery 中获取它。
我已经尝试过类似的东西:
beforeSend: function(xhr){
xhr.setRequestHeader( "withCredentials", true );
xhr.setRequestHeader( "Access-Control-Expose-Headers", "WWW-Authenticate" );
xhr.setRequestHeader( "Access-Control-Allow-Headers", "WWW-Authenticate" );
}
如果我尝试:
data.getAllResponseHeaders()
// Returns:
Cache-Control: private
Content-Type: text/html
但是在 Firebug 中,我看到了更多的 header ……更多。
非常感谢!
非常感谢!
最佳答案
如果您使用 CORS 请求,在 firebug 中看到所有其他 header 数据是正常的,但在您的 xHR 对象中您只会看到其中的一小部分(内容类型、最后修改时间、语言、过期时间、pragma 和缓存控制)
您可以通过发送 Access-Control-Expose-Headers 尝试将其添加到您的服务器响应(如果您有权访问它)看看 here了解更多详情。
关于JavaScript/jQuery : Can´t get "WWW-Authenticate" response header,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33672689/