0

我只想在 Jquery UI 对话框的按钮调用上调用 jQuery Ajax“POST”请求,这是代码片段,

    $("#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>
4

2 回答 2

0

安装 Fiddler 并查看流量。您的帖子有错误,或者至少服务器返回 500。

http://fiddler2.com/

于 2013-07-09T17:27:16.480 回答
0

这里的问题是您的数据对象不是 JSON 字符串。在你的 ajax 调用中试试这个:

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。

于 2013-07-17T14:24:27.753 回答