Javascript 从jqXHR获取所有响应头
在我的服务器(用Go编写)上,我发送回一个自定义头字段,当我进行ajax调用时,我试图从中读取该字段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
$.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