3

我正在使用 jQuery 的 getJSONP,我想记录调用的持续时间和响应的大小,以便能够对我的应用程序的使用情况进行一些统计。这是一个跨域 ajax 调用,所以我需要使用 JSONP,但是由于 JSONP 调用不是使用 XMLHttpRequest 对象完成的,所以来自 jquery ajax 的完整回调不会传递响应内容。

所以我的问题是如何从 JSONP 调用中获取响应大小(内容长度)。

$.ajaxSetup(
{
    complete:function(x,e)
    {
         log(x.responseText.length, x.responseText);
    }
}

这里 x 是 JSON 调用的 XMLHttpRequest 对象,但 JSONP 调用是未定义的。

4

2 回答 2

6

您可以获得响应标头的“Content-Length”:

var contentsize;
$.ajax('url', function(data, textstatus, request) {
    contentsize = request.getResponseHeader("Content-Length") / 1024;
    //do stuff with your data
});
于 2013-03-11T12:34:59.597 回答
1
$.ajax('url',function(data,textstatus,request)
{
     var totalBytes  = request.getResponseHeader('Content-length');

     //if u are looking for downloaded bytes
     var dlBytes =request.responseText.length; 
});
于 2016-05-16T14:07:49.797 回答