我有一个返回此响应的网络服务:
<string xmlns="http://tempuri.org/">{ "H...[ { "ID":"1","Name":"Test"} ]}</string>
当我试图回复时,我不断收到错误: “丢失;在陈述之前”
我刚刚开始讨论这个问题,所以我可能做错了。
为什么回复对我不起作用?
我的dojo代码看起来像这样
var targetNode = document.getElementById("foo");
var def = dojo.io.script.get({
url: "http://localhost/WebData/PublicData.asmx/HelloWorld",
timeout: 30000,
handleAs: "json",
preventCache: true,
handle: function(error, ioargs) {
var message = "";
switch (ioargs.xhr.status) {
case 200:
message = "Good request.";
break;
case 404:
message = "The requested page was not found";
break;
case 500:
message = "The server reported an error.";
break;
case 407:
message = "You need to authenticate with a proxy.";
break;
default:
message = "Unknown error.";
}
targetNode.innerHTML = message;
}
});
谢谢! 大卫
答案 0 :(得分:1)
get
函数正在尝试将响应解析为纯json,因为handleAs
属性设置为'json'
;但实际上响应是一个包含一些json文本的xml文档,导致你出错。
将响应更改为纯json,如下所示:
{ "H": [ { "ID":"1","Name":"Test"} ]}
或将handleAs
属性设置为'xml'
并解析响应以提取json内容;然后,您可以使用dojo.fromJson
解组json字符串。