首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从jqXHR获取所有响应头

从jqXHR获取所有响应头
EN

Stack Overflow用户
提问于 2015-08-10 15:56:59
回答 1查看 1.2K关注 0票数 2

在我的服务器上(用Go编写),当我进行ajax调用时,我将返回一个自定义头字段,我试图从中读取该字段。

代码语言:javascript
复制
$.ajax({
        url: url,
        success: function(data, status, request) {
            console.log("Custom field: " + request.getResponseHeader('Custom-Header')); 

            // doing stuff with data
        }
});

响应

代码语言:javascript
复制
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Custom-Header: some,comma,separated,stuff,here
Content-Type: text/csv
Date: Mon, 10 Aug 2015 15:42:34 GMT
Content-Length: 1379

这将始终返回null。我尝试将getResponseHeader用于响应包中的常规标头,例如Content-LengthDateAccess-Control-Allow-Origin;这些都返回null。唯一起作用的头是Content-Type

如果我使用getAllResponseHeaders(),它将返回一个只有Content-Type: text/csv的字符串。

如何访问其他不是Content-Type的标头?三年前,我看到了一个与此相关的错误,但只影响了火狐。我使用Chrome 44.0.2403.130 (64位)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-10 16:05:35

您有Access-Control-Allow-Origin,这意味着这是一个跨源请求。

来自规格

跨源资源共享规范为跨源请求筛选getAllResponseHeaders()公开的响应头。

您需要使用Access-Control-Expose-Headers显式地使标头可用于跨源请求。

来自MDN的示例:

代码语言:javascript
复制
Access-Control-Expose-Headers: X-My-Custom-Header, X-Another-Custom-Header

所以:

代码语言:javascript
复制
Access-Control-Expose-Headers: Custom-Header

尽管如此,请使用X-前缀为您的eXperimental,非标准标头.

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31924071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档