2011-04-28 94 views
1

我使用的是與jQuery 1.5.2的asp.net mvc2。我假裝在客戶端調用我的控制器中返回一個json數據的特定方法。簡單的JsonResult返回jquery ajax方法的parsererror

其實,我的客戶端調用服務器正在工作,但問題是,jQuery不能識別返回的json。

我不明白我做錯了什麼,可以有人幫助我嗎?

控制器方法:

<HttpPost()> _ 
Function DoStuff(ByVal id As Integer) As JsonResult 
    Dim retval As JsonResult = Nothing 

    retval = Json(New xpto With {.P1 = "P1Value"}) 

    Return retval 
End Function 

JQuery的Ajax調用:

$.ajax({ 
     url: "/DoStuff/5", 
     type: "POST", 
     dataType: "json", 
     async: false, 
     success: function(data, textStatus, jqXHR) { 
      alert(textStatus); 
     }, 
     error: function(jqXHR, textStatus, errorThrown) { 
      alert(textStatus); 
     } 
    }); 

值時處理錯誤的方法:

errorThrow N:jQuery1520029581770420782693_1303980789842不叫

textStatus:parsererror

jqXHR.responseText = 「{」 P1 「:」 P1Value 「}」

+0

看不出你的代碼有什麼問題。這是否發生在所有瀏覽器?我測試過這段代碼,它工作正常。 – 2011-04-28 09:24:01

+0

我已經測試過IE8和FireFox4(兩者的結果相同) – 2011-04-28 09:26:28

回答

0

的問題是不是在該代碼,即工作正常,是通過在標記(生效)Sctipt標記順序產生的問題

WRONG:

<script src="/Scripts/jquery-1.5.2.min.js" type="text/javascript"></script> 
<script src="/Scripts/jquery-ui-1.8.11.custom.min.js" type="text/javascript"></script> 
<script src="/Scripts/jquery.validate.min.js" type="text/javascript"></script> 
<script src="/Scripts/jquery.maskedinput-1.3.min.js" type="text/javascript"></script> 

RIGHT:

<script src="/Scripts/jquery-1.5.2.min.js" type="text/javascript"></script> 
<script src="/Scripts/jquery-ui-1.8.11.custom.min.js" type="text/javascript"></script> 
<script src="/Scripts/jquery.maskedinput-1.3.min.js" type="text/javascript"></script> 
<script src="/Scripts/jquery.validate.min.js" type="text/javascript"></script>