ajax 响应:无法从响应中读取所有 headers

ajax response: cannot read all the headers from the response

我正在使用 ajax (CORS) 发出 post 请求,我正在设置 header (Content-Type:application/x-www-form-urlencoded),我正在试图读取响应的 headers。这是我所做的:

function makePostRequest(url, data, headers, httpVerb, dataType, elementId) {
    $.ajax({
        url: url,
        type: httpVerb,
        data: data,
        headers: headers,
        dataType: dataType,
        success: function(data, textStatus, jqXHR) {
            $("#" + elementId).val(jqXHR.responseText);
            alert(JSON.stringify(jqXHR));
        },
        error: function(jqXHR, textStatus, errorThrown) {
            $("#" + elementId).val(jqXHR.responseText);
        }
    }).then(function(data, status, xhr) {
        console.log(xhr.getAllResponseHeaders());
    });
}

但在控制台中只打印

Content-Type: application/x-www-form-urlencoded; charset=utf-8

在 chrome 开发者工具中我看到:

如何获得所有这些 header?

PS:我用的是Chrome,不是Firefox()

我问的是如何获得所有 header,而不是为什么我只获得一个 header(如果不可能,我会接受这个答案)。

所以,我提出了一个 CORS 请求,在这种情况下,出于安全原因,header 被过滤掉了。

访问这些 header 的唯一方法是在响应中包含一个 header Access-Control-Expose-Headers,它将包含一个可以读取的 header 列表来自 javascript,您可以阅读 here:

7.1.1 Handling a Response to a Cross-Origin Request

User agents must filter out all response headers other than those that are a simple response header or of which the field name is an ASCII case-insensitive match for one of the values of the Access-Control-Expose-Headers headers (if any), before exposing response headers to APIs defined in CORS API specifications.