我正在尝试阅读文档,我必须承认这不是一个容易阅读的过程。我(在添加了Access Control Allow Origin标头之后)读取responseText没有问题,但除了Firefox之外,在任何地方都无法获得响应标头。
所以,我的问题是,使用跨域ajax获取响应头的正确方法是什么?
我尝试过使用(Access Control Expose Headers),但再次读取标头失败。
因此,它的工作方式应该是在access Control Expose-headers标头中指定您希望客户端有权访问的标头。例如,如果您的服务器设置了Foo响应标头,并且您希望客户端能够读取它,那么您的服务器也应该发送以下标头:
Access-Control-Expose-Headers: Foo
在客户端,您可以通过调用xhr.getAllResponseHeaders()读取所有响应标头。这将以字符串形式返回响应标头,然后您可以使用以下代码将其解析为对象:https://gist.github.com/706839
这是对应该如何工作的解释。但是,请注意,在较旧的浏览器中存在一个错误,无法在客户端上读取响应标头。请参阅此处了解更多详细信息:CORS xmlhttprequest HEAD方法
我也遇到了同样的问题,在Chromium邮件列表上找到了答案,这在webkit中得到了修复,它将在crhomium~19中实现。
我会努力找到话题并更新我的答案。