一尘不染

如何通过跨域Ajax获取响应标头?

ajax

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

因此,我的问题是使用跨域Ajax获取响应标头的正确方法是什么?

我尝试使用(Access-Control-Expose-
Headers
),但是再次失败,无法读取标头。


阅读 224

收藏
2020-07-26

共1个答案

一尘不染

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

Access-Control-Expose-Headers: Foo
在客户端,可以通过调用xhr.getAllResponseHeaders()读取所有响应标头。这将以字符串形式返回响应头,然后您可以使用以下代码将其解析为一个对象:https
//gist.github.com/706839

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

2020-07-26