我正在使用以下代码从服务器获取数据:
$.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
作为警报。
答案 0 :(得分:2)
从查看文档(我还没有尝试过),你需要明确地告诉jQuery你正在进行一个JSONP调用,它将调用返回的函数。这样的事情: -
$.ajax({
type : "GET",
dataType : "jsonp",
url : "http://xxx.xxx.xxx.xx/SampleWebService/Service.svc/SampleMethod",
success: function(data){
alert(data);
}
});
答案 1 :(得分:0)
您正在寻找的功能是JSON.parse。请尝试以下代码:
$.post("YouURL", { 'ParameterName': paramvalue }, function (Data) {
var data = JSON.parse(data);
});
答案 2 :(得分:0)
您的回复是一个函数调用。如果您使用名称jQuery19101878696953793153_1365677709012定义函数名称,则可以从服务器处理'data',只需发送json作为对$ .getJSON回调的响应即可工作
答案 3 :(得分:0)
问题是数据非常庞大。我发送了大约10,00,000多个字节的数组。 所以我把它分成字节列表(每个字节有1000个字节)&然后作为回复发送。
我不知道这是否是最佳解决方案,但它解决了我的问题。 顺便说一句,感谢所有人的帮助。