如何在AJAX中获取响应头

我正在使用以下代码进行AJAX调用

$.ajax({ type: "POST", url: "http://******/cxf/view/*****", data: {*****}, headers: {*****}, success: function (dt, status, request) { console.log(request.getAllResponseHeaders()); }, error: function (jqXHR, status) { } }); 

这是仅打印内容类型。 在开发人员控制台中,我可以看到响应中的标头数量。 我怎样才能在AJAX中获得这些头文件

在此处输入图像描述

这似乎没问题。 我试过并让它运作起来。

使用JSONPlaceholder ,这是我的代码

 $.ajax({ url: root + '/posts/1', headers: {'test': 'test'}, method: 'GET' }).then(function(data, status, xhr) { console.log(xhr.getAllResponseHeaders()); }); 

结果是

 Pragma: no-cache Date: Wed, 23 Dec 2015 06:36:57 GMT Via: 1.1 vegur X-Content-Type-Options: nosniff Server: Cowboy X-Powered-By: Express Vary: Origin Content-Type: application/json; charset=utf-8 Cache-Control: no-cache Access-Control-Allow-Credentials: true Content-Length: 292 Etag: W/"124-yv65LoT2uMHrpn06wNpAcQ" Expires: -1 

在您的服务器上,您需要添加

 res.header("Access-Control-Expose-Headers", "header-you-want-to-expose"); 

然后您就可以在浏览器中访问它。

我使用了你使用的相同代码

 success: function (dt, status, request) { console.log(request.getAllResponseHeaders()); 

问题不在于Jquery或Ajax。 响应标头由服务器设置。 您发送请求的服务器未设置标头! 简单!!!!

当我尝试使用我的服务器[某些响应模糊以确保安全]时,我得到了以下输出

控制台输出的快照