gpt4 book ai didi

javascript - 从 jqXHR 获取所有响应头

转载 作者:行者123 更新时间:2023-11-29 16:56:38 28 4
gpt4 key购买 nike

在我的服务器上(用 Go 编写),我发回了一个自定义 header 字段,当我进行 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 用于已确认在响应数据包中的常规 header ,例如 Content-LengthDate访问控制允许来源;这些都返回 null 。唯一有效的 header 是 Content-Type

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

如何访问不是 Content-Type 的其他 header ?我看到有一个 bug 3 年前与此相关,但只影响 Firefox。我使用的是 Chrome v 44.0.2403.130(64 位)。

最佳答案

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

来自 the specification :

The Cross-Origin Resource Sharing specification filters response headers exposed by getAllResponseHeaders() for cross-origin requests.

您需要使用 Access-Control-Expose-Headers 显式地使 header 可用于跨域请求.

示例来自 MDN :

Access-Control-Expose-Headers: X-My-Custom-Header, X-Another-Custom-Header

所以:

Access-Control-Expose-Headers: Custom-Header

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

关于javascript - 从 jqXHR 获取所有响应头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31924071/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com