我正在使用Kango框架开发跨浏览器插件,使用以下代码我正在使HEAD
请求使用Kango.XHR成功执行(如HTTP DEBUGGER中所示)和代码在我的后台脚本中,下面还会返回data.status == 200
。
function doXHR(url) {
var details = {
method: 'HEAD',
url: url,
async: true
};
kango.xhr.send(details, function(data) {
if (data.status == 200) {
kango.console.log(data.status);
}
else { // something went wrong
kango.console.log('something went wrong');
}
});
};
现在,我想从上面得到Content-Length
响应标头的值,但不知道如何做到这一点?
答案 0 :(得分:1)
通常,您可以使用xhr.getReponseHeader
阅读回复标头。根据Kango的工作方式,您的data
对象上可能已经提供了该方法。
如果data.getReponseHeader("Content-Length")
不起作用,那么您可以尝试使用kango.getXMLHttpRequest
模拟正常的Ajax调用,而不是使用kngo.xhr.send
:
var request = kango.xhr.getXMLHttpRequest();
request.open('HEAD', url);
request.send(null);
request.onload = function() {
if(request.status == 200) {
console.log(request.getResponseHeader("Content-Length"));
console.log(request.responseText);
}
}
request.onerror = function() {
console.log("something went wrong");
}
同样,根据Kango的工作原理,您的服务器可能需要提供Access-Control-Expose-Headers响应标头以允许客户端读取它。这可能不太可能,因为扩展代码通常不受同一原始策略的约束,但我提供它只是为了帮助您解决Kango跨平台API中任何可能的不一致问题。