Javascript 从jqXHR获取所有响应头

Javascript 从jqXHR获取所有响应头,javascript,jquery,ajax,Javascript,Jquery,Ajax,在我的服务器(用Go编写)上,我发送回一个自定义头字段,当我进行ajax调用时,我试图从中读取该字段 $.ajax({ url: url, success: function(data, status, request) { console.log("Custom field: " + request.getResponseHeader('Custom-Header')); // doing stuff with

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

$.ajax({
        url: url,
        success: function(data, status, request) {
            console.log("Custom field: " + request.getResponseHeader('Custom-Header')); 

            // doing stuff with data
        }
});
回应

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
作为我确认在响应数据包中的常规标题,例如
内容长度
日期
,以及
访问控制允许来源
;它们也都返回
null
。唯一有效的标题是
内容类型

如果我使用
getAllResponseHeaders()
,它将返回一个仅包含
内容类型的字符串:text/csv


如何访问非
内容类型的其他标题?我在3年前看到了一个与此相关的问题,但只影响了Firefox。我使用的是ChromeV44.0.2403.130(64位)

您有
访问控制允许来源
,这意味着这是一个跨来源请求

发件人:

跨源资源共享规范过滤getAllResponseHeaders()为跨源请求公开的响应头

您需要显式地使标头可用于跨源请求

示例来自:

因此:


也就是说,请使用
X-
前缀作为实验性的非标准标题。

太好了,谢谢。谢谢你给我关于会议的提示
Access-Control-Expose-Headers: X-My-Custom-Header, X-Another-Custom-Header
Access-Control-Expose-Headers: Custom-Header