0

我正在使用 Kango 框架开发一个跨浏览器插件,使用以下代码我正在使用正在成功执行的Kango.XHRHEAD发出请求(如 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从上面获取响应标头的值,但不知道该怎么做?

4

1 回答 1

1

通常,您可以使用xhr.getReponseHeader. 根据 Kango 的工作方式,该方法可能已经在您的data对象上可用。

如果data.getReponseHeader("Content-Length")不起作用,那么kngo.xhr.send您可以尝试模仿普通的 Ajax 调用,而不是使用kango.getXMLHttpRequest

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 中任何可能的不一致。

于 2013-11-18T15:56:56.877 回答