繁体   English   中英

如何通过跨域 ajax 获得响应 header?

[英]How can I get response header via cross-domain ajax?

我正在尝试阅读文档,我必须承认这并不容易阅读。 我没有问题(在添加 Access-Control-Allow-Origin 标头后)读取 responseText,但除了 Firefox 之外的任何地方都无法获得响应 header。

所以,我的问题是使用跨域 ajax 获得响应 header 的正确方法是什么?

我尝试使用( Access-Control-Expose-Headers ),但再次未能读取 header。

因此,它应该工作的方式是在 Access-Control-Expose-Headers header 中指定您希望客户端可以访问的标头。 例如,如果您的服务器设置了 Foo 响应 header,并且您希望客户端能够读取它,您的服务器还应该发送以下 header:

Access-Control-Expose-Headers: Foo

在客户端,您可以通过调用 xhr.getAllResponseHeaders() 来读取所有响应标头。 这会将响应标头作为字符串返回,然后您可以使用以下代码将其解析为 object: https://gist.github.com/7068

这是对事情应该如何运作的解释。 但是,请注意,旧浏览器中存在一个错误,即无法在客户端上读取响应标头。 有关详细信息,请参见此处: CORS xmlhttprequest HEAD 方法

我有同样的问题,并在 Chromium 邮件列表上找到了答案,这是在 webkit 中修复的,它将在 crhomium ~19 中实现。

我将尝试找到主题并更新我的答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM