gpt4 book ai didi

javascript - ExtJS 4.2.1 : Cannot retrieve HTTP Response headers upon Ext. ajax.request 回调

转载 作者:可可西里 更新时间:2023-11-01 16:18:33 24 4
gpt4 key购买 nike

我正在尝试读取 Ext.ajax.request 上即将到来的响应的 header 。

代码如下:

Ext.Ajax.request({ url: 'http://localhost:3000/v0.1/login' ,
method: 'POST',
scope:this,
jsonData: {"_username":username,"_userpwd":password},
success: function(responseObject){
var headers = responseObject.getAllResponseHeaders();
console.info(headers );
Ext.destroy(Ext.ComponentQuery.query('#loginWindow'));
this.application.getController('SiteViewController').showView();
},
failure: function(responseObject){
alert(responseObject.status);
}
});

但是它在控制台中打印出来的唯一标题是:

Object {content-type: "application/json; charset=utf-8"} 

所有其他 header 都丢失了,但它们存在于 chrome 检查器中!!!

我错过了什么?谢谢

最佳答案

因为您可能正在执行跨域请求,所以您只会有服务器显式公开的 header 。相同的域请求会公开所有 header 。

在服务器端,您必须添加 header “Access-Control-Expose-Headers”,其中包含您要公开的 header 的详尽列表,以逗号分隔。在 php 中它看起来像这样:

header("Access-Control-Expose-Headers: Content-length, X-My-Own-Header");

header 确实可以通过 responseObject.getAllResponseHeaders() 或类似 responseObject.getResponseHeader('content-type') 的方式获得。

有关跨域请求和 header 的更多信息:http://www.html5rocks.com/en/tutorials/cors/

PS:Ace.Yin 的答案是正确的,但我没有足够的声誉来简单地发表评论。

关于javascript - ExtJS 4.2.1 : Cannot retrieve HTTP Response headers upon Ext. ajax.request 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17066550/

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