2013-07-09 42 views
0

我只是想呼籲jQuery用戶界面對話框的按鈕調用一個jQuery的Ajax「POST」的要求,這裏是代碼片段,如何做呼籲jQuery UI的對話框按鈕調用的jQuery的Ajax的功能

$("#addqust").dialog({ 
     autoOpen: false, 
     width: 630, 
     modal: true, 
     resizable: false, 
     position: { my: "top", at: "top", of: window }, 
     buttons: { 
      "Save": function (e) {       
       $.ajax({ 
        type: "POST", 
        url: "Default.aspx/InsertQuestion", 
        contentType: "application/json; charset=utf-8",               
        data: { name: $("#qst").val() }, 
        success: function (data) { 
         console.log($("#qst").val()); 
         console.log(data.d); 
         // alert("message"); 
        } 
        }).done(function (msg) { 
         alert("Data Saved "); 
       }); 
      }, 
      "Cancel": function() { 
       $(this).dialog("close"); 
      } 
     } 
    }); 

,但我得到以下錯誤或console.log,而不是調用Page Web方法,

POST http://localhost:50583/Default.aspx/InsertQuestion 500 (Internal Server Error) 
send 
v.extend.ajax 
$.dialog.buttons.Save 
(anonymous function) 
v.event.dispatch 
o.handle.u 

我想知道我做了什麼錯誤,感謝您的幫助。

更新的WebMethod,其用於測試的簡單方法,使用

[WebMethod()] 
public static string InsertQuestion(string name) 
{ 
    try 
    {   
     string strjson; 
     strjson = name; 
     return strjson; 
    } 
    catch (Exception ex) 
    { 
     throw new System.Exception(ex.Message); 
    } 
} 

jQuery的版本,

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" type="text/javascript"></script> 
    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js" type="text/javascript"></script> 
+0

'Default.aspx/InsertQuestion'看起來不正確。你有沒有一個Web服務或Web API控制器你想打電話? –

+0

我已經在頁面方法 –

+0

@JasonP之前加入了「[WebMethod()]」 - 他使用的ASP.NET AJAX頁面方法使用了「WebMethod」屬性。它本質上是在'.aspx'頁面中創建一個獨立的Web服務方法。 –

回答

0

這裏的問題是,你的數據對象不是一個JSON字符串。嘗試在您的阿賈克斯電話:

buttons: { 
     "Save": function (e) { 
      var dataToSend = JSON.stringify({ name: $("#qst").val() });      

      $.ajax({ 
       type: "POST", 
       url: "Default.aspx/InsertQuestion", 
       contentType: "application/json; charset=utf-8",               
       data: dataToSend, 
       success: function (data) { 
        console.log($("#qst").val()); 
        console.log(data.d); 
        // alert("message"); 
       } 
       }).done(function (msg) { 
        alert("Data Saved "); 
      }); 
     }, 
     "Cancel": function() { 
      $(this).dialog("close"); 
     } 
    } 

包括JSON.js舊版瀏覽器。