在我的服务器上(用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用于响应包中的常规标头,例如Content-Length、Date和Access-Control-Allow-Origin;这些都返回null。唯一起作用的头是Content-Type。
如果我使用getAllResponseHeaders(),它将返回一个只有Content-Type: text/csv的字符串。
如何访问其他不是Content-Type的标头?三年前,我看到了一个与此相关的错误,但只影响了火狐。我使用Chrome 44.0.2403.130 (64位)。
发布于 2015-08-10 16:05:35
您有Access-Control-Allow-Origin,这意味着这是一个跨源请求。
来自规格
跨源资源共享规范为跨源请求筛选getAllResponseHeaders()公开的响应头。
您需要使用Access-Control-Expose-Headers显式地使标头可用于跨源请求。
来自MDN的示例:
Access-Control-Expose-Headers: X-My-Custom-Header, X-Another-Custom-Header所以:
Access-Control-Expose-Headers: Custom-Header尽管如此,请使用X-前缀为您的eXperimental,非标准标头.
https://stackoverflow.com/questions/31924071
复制相似问题