我有一个简单的网络方法:
<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)”时,我得到了未定义。我错过了什么吗?
答案 0 :(得分:0)
当您从WebMethod获得响应时,您需要评估响应,因为它以字符串形式返回。我不愿意在您的代码中使用eval
因为安全风险。
如果您正在使用jQuery,可以调用jQuery.parseJSON(result)
,它将返回您期望的实际Javascript对象。