0

我正在使用以下代码从服务器获取数据:

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

从服务器,我发送字节数组作为响应。在选项卡firebug中,Net > 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

通过查看文档(我没有尝试过),您需要明确告诉 jQuery 您正在进行 JSONP 调用,该调用将调用返回的函数。像这样的东西: -

 $.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

您正在寻找的功能是 JSON.parse。请尝试以下代码:

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

您的响应是一个函数调用。如果您使用名称 jQuery19101878696953793153_1365677709012 定义函数名称,您可以处理来自服务器的“数据”,否则只需发送 json 作为对 $.getJSON 回调的响应即可工作

于 2013-04-11T11:11:31.680 回答
0

问题是数据非常庞大。我正在发送大约 10,00,000+ 字节的数组。因此,我将其划分为字节列表(每个字节有 1000 个字节),然后作为响应发送。

我不知道这是否是最好的解决方案,但它解决了我的问题。顺便说一句,感谢大家帮助我。

于 2013-04-11T15:04:18.997 回答