0

次のコードを使用して、サーバーからデータを取得しています。

  $.getJSON('http://xxx.xxx.xxx.xx/SampleWebService/Service.svc/SampleMethod?callback=?', dd, function (data) {
                alert(data);
  });

サーバーから、応答としてバイト配列を送信しています。firebugNet > Responseタブで、次を取得します。

jQuery19101878696953793153_1365677709012([67,37,94,38,42,44,69,67,71,32,97,116,116,97,99,104,101,100,32,102,111,114,32,112,97,116]);

Net > JSONタブでも、いくつかのキーでデータを取得します。

しかし、でデータを取得する方法alert(data);; そのデータを処理するようにします。私は知りません、これがどのように機能するか。

編集:

私はこの別のアプローチを試しました:

 $.ajax({
                type: "GET",
                dataType: "jsonp",
                contentType: "application/javascript",
                data: dd,
                crossDomain: true,
                url: "http://xxx.xxx.xxx.xx/SampleWebService/Service.svc/SampleMethod",
                success: function (data) {
                    alert(JSON.parse(data));
                },
                complete: function (request, textStatus) { //for additional info
                    alert(request.responseText);
                    alert(textStatus);
                },
                error: function(request, textStatus, errorThrown) {
                    alert(textStatus);
                  }
            });

しかし、私は得ました:parseerror警戒として。

4

4 に答える 4

2

ドキュメントを見て(私はこれを試していません)、返された関数を呼び出すJSONP呼び出しを行っていることをjQueryに明示的に伝える必要があります。このようなもの:-

 $.ajax({
     type : "GET",
     dataType : "jsonp",
     url : "http://xxx.xxx.xxx.xx/SampleWebService/Service.svc/SampleMethod",
     success: function(data){
           alert(data);
     }
});
于 2013-04-11T11:28:34.837 に答える
0

問題は、データが非常に巨大だったことです。約10,00,000バイト以上の配列を送信していました。その代わりに、それをバイトのリスト (それぞれが 1000 バイト) に分割し、応答として送信しました。

これが最善の解決策かどうかはわかりませんが、問題は解決しました。ところで、私を助けてくれてありがとう。

于 2013-04-11T15:04:18.997 に答える
0

探している関数は JSON.parse です。このコードを試してください:

$.post("YouURL", { 'ParameterName': paramvalue }, function (Data) {
  var data = JSON.parse(data);
});
于 2013-04-11T11:08:31.340 に答える
0

あなたの応答は関数呼び出しです。関数名を jQuery19101878696953793153_1365677709012 という名前で定義すると、サーバーから「データ」を処理できます

于 2013-04-11T11:11:31.680 に答える