2009-12-17 15 views
1

我有一个返回这个响应web服务:道场新手阅读Web服务的JSON响应

<string xmlns="http://tempuri.org/">{ "H...[ { "ID":"1","Name":"Test"} ]}</string> 

当我试图得到的回应后,我不断收到错误: “失踪;语句之前”

我刚开始进入这个,所以我可能做了一些非常错误的事情。

为什么响应不适合我?

我的道场的代码看起来这

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; 
     } 
    }); 

感谢状! david

+0

该示例中的json片段已损坏。我认为这样做是为了缩短这个例子。否则你需要修复... – 2009-12-22 15:10:29

+0

http://stackoverflow.com/q/1923121/420613的副本 – 2011-12-07 05:35:07

回答

1

get函数试图将响应解析为纯json,因为handleAs属性设置为'json';但实际上响应是一个包含一些json文本的xml文档,导致了您的错误。

要么改变到纯JSON的反应,这样的:

{ "H": [ { "ID":"1","Name":"Test"} ]} 

handleAs属性设置为'xml'和解析以提取JSON内容的响应;您可以使用dojo.fromJson解开json字符串。