0

我有一个简单的网络方法:

<WebMethod(Description:="Does something.")> _
<ScriptMethod(ResponseFormat:=ResponseFormat.Json)> _
Public Shared Function ReturnJSONData() As Person
    Dim guy As New Person
    guy.Name = "Joe"
    guy.Age = 8
    Return guy
End Function

这里是我调用 ajax 方法的地方:

 function GetPerson() {
     PageMethods.ReturnJSONData(OnWSRequestComplete1);
 }
 function OnWSRequestComplete1(result) {
     alert(result.d);
 }

当我使用像 firebug 这样的工具时,我可以看到 JSON 结果:

{"d":{"__type":"Person","Name":"Joe","Age":8}}

但是,当我调用“alert(result.d)”时,我得到了未定义。我错过了什么吗?

4

1 回答 1

0

当您从 WebMethod 获得响应时,您需要评估响应,因为它作为字符串返回。我会犹豫eval在您的代码中使用,因为存在安全风险。

如果您使用的是 jQuery,您可以调用jQuery.parseJSON(result)它将返回您期望的实际 Javascript 对象。

于 2013-03-08T18:41:45.273 回答