2010-03-04 48 views
0

我只是用jQuery学习Ajax,并有一个简单的页面方法,它接受一个参数并返回一个字符串。出于某种原因,我没有得到返回的字符串,但我得到我的“成功”的消息:新手与jQuery AJAX

$(document).ready(function() { 
      $.ajax({ 
       type: "POST", 
       url: "testFormMatt.aspx/sayHello", 
       contentType: "application/json; charset=utf-8", 
       data: '{"name": "matt"}', 
       dataType: "json", 
       success: function(msg) { 
        $.jGrowl('The web service has been successfully called'); 
        $('#result').append(msg); 
       } 
      }); 
}); 
+0

你确定返回字符串包含任何东西?尝试只是'警报(味精);' – 2010-03-04 20:56:59

+0

你是说msg是'成功','成功'被追加到#result?或者你是否说你的成功jGrowl正在发射但没有任何内容被追加到#result上? – Lobstrosity 2010-03-04 20:59:54

+0

jGrowl说成功,但没有什么被附加到#result。当我使用alert(msg)时,[object Object]从asp.net方法返回。猜猜这就是我的问题所在? – Matt 2010-03-04 21:03:40

回答

4

当你调用append,你需要指定要追加的JSON对象的属性。

因此,如果您的网页返回:

{ message: "Hello, Matt" } 

然后,你需要调用追加像这样:

$("#result").append(msg.message); 

如果您的网页没有返回JSON,那么你就需要采取拨打$.ajax拨打dataType: "json"dataType参数用于指定响应的预期数据类型,而不是请求的数据类型。

+0

好的,很酷。不知道关于dataType:“json”。我现在正在把我的警报恢复。 {“d”:“hello matt。”} 我该如何清理? – Matt 2010-03-04 21:26:03

+0

您的结果是JSON,因此您需要在其中留下'dataType:“json”'。如果你的属性被称为d,你会想调用$(“#result”)。append(msg.d); – Lobstrosity 2010-03-04 21:34:20