我正在使用一些API,我注意到在响应中我有这个:
我需要阅读" x-dl-units-left",但我得到null:
$.ajax(ajaxConfig).done(function(response, textStatus, xhr){
var left = xhr.getResponseHeader("x-dl-units-left"); //null
var all = xhr.getAllResponseHeaders(); // "content-type: application/json;charset=UTF-8"
});
任何可能知道原因的人? :(
谢谢
答案 0 :(得分:7)
问题是因为请求正在使用CORS。因此,您需要明确允许将自定义标头公开给收件人。为此,请在响应中添加Access-Control-Expose-Headers
标头,例如:
Access-Control-Expose-Headers: x-dl-units-left, x-dl-units, [other headers as needed...]
请注意,必须在创建响应的服务器上执行此操作。如果您无法控制服务器,则无法进行此更改。您需要从API提供商处请求它。
答案 1 :(得分:0)
您的访问说明符未被提及,因此它存储但在某些未知的位置。现在你需要先将它初始化。 为了更好的初始化:
Acccess-Control-Expose-Headers: x-dl-units-left;
$.ajax(ajaxConfig).done(function(response, textStatus, xhr){
var all = xhr.getAllResponseHeaders();
// "content-type: application/json;charset=UTF-8"
});