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 に答える