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 に答える