2013-01-21 34 views
1

我正在嘗試關注this article以使用jQuery AJAX從webmethod獲取值。我已將它縮減爲單一輸入形式。msg.d from asp.net webmethod is undefined

問題是,它總是失敗,msg.d總是未定義。在Firebug中,我可以看到POST和數據字符串格式正確。我不能,因爲我一生都在弄清楚爲什麼這一直會失敗。在我的webmethod中設置的斷點被擊中,但頁面在完全運行之前顯示失敗消息。

任何想法發生了什麼?這裏是我的代碼:

基本形式:

<div id="contact"> 
    <ul> 
     <li><div>Name*</div> 
     <input name="ctl00$ContentPlaceHolder1$txtName" type="text" id="ctl00_ContentPlaceHolder1_txtName" /> 
     </li>    
     </ul> 
     <ul class="submit"> 
      <li>* required</li> 
      <li class="submit_button"> 

     <input type="submit" name="ctl00$ContentPlaceHolder1$btnSubmit" value="Submit"  id="ctl00_ContentPlaceHolder1_btnSubmit" /> 
      </li> 
     </ul> 
    </div> 

的jQuery:

<script type="text/javascript"> 

    jQuery(document).ready(function() { 

     $("#ctl00_ContentPlaceHolder1_btnSubmit").click(function() { 
      var name = $("#ctl00_ContentPlaceHolder1_txtName"); 
      $.ajax({ 
       type: "POST", 
       dataType: "json", 
       contentType: "application/json", 
       url: "Default.aspx/SendEmail", 
       data: "{'name':'" + name.val() + "'}", 
       success: function (msg) { 
        alert("success"); 
        alert(msg.d); 
       }, 
       error: function (msg) { 
        alert("fail"); 
        alert(msg.d); 
       } 
      }); 
     }); 

    }); 

</script> 

的WebMethod:

[WebMethod] 
public static string SendEmail(string name) 
{ 
    return "success"; 
} 
+0

什麼是故障消息? – lante

+0

@lante:警報中的失敗消息是'未定義的' – Brett

+0

您是否正在使用ASP.Net 2.0? – stuartd

回答

-1

您在返回從服務器字符串,而不是JSON作爲AJAX dataType是尋找。字符串沒有屬性d

刪除dataType選項,並嘗試alert(msg)

+0

我已經刪除了數據類型參數,但警報(MSG)現在返回[對象的對象]所示 – Brett

+0

代碼字符串,警報提示你雖然得到一個對象...使用'的console.log(味精)'和檢查數據瀏覽器控制檯...你在那裏看到什麼?也可以檢查控制檯中的完整請求,並看到實際的響應文字 – charlietfl

+0

對象{readyState = 0,狀態= 0,statusText =「錯誤」} – Brett