JQuery AJAX请求无效。

时间:2016-05-02 16:33:35

标签: javascript c# asp.net ajax

我第一次使用AJAX,我不确定我是否有正确的语法。基本上我在后面的代码中有一个方法,它接受2个字符串参数并执行更新用户密码。但它不断回来失败。

这是我当前的asp按钮:

<td><asp:Button  ID="Button1" runat="server" Text="Add Password" alt="Add Password" /></td>

这是用户点击表单上的“添加密码”按钮后执行的代码:

$("#edit_password_form").submit(function (e) {
                         e.preventDefault();

                         var finalValue = value2.value;

                         <%string inputCust = Session[SessionKey.CUSTOMER_ID].ToString();%>
                         var custNoString = <%=inputCust%>

                         $.ajax({
                             url: 'reciept.aspx/Button1_Click',
                             method: 'post',
                             contentType: 'application/json',
                             data: '{custID:' + custNoString + 'tempPass2:' + finalValue + '}',
                             success: function(){

                                 alert("The function worked correctly");

                             },
                             error:function(){ alert("the function did not succeed");}
                         });
                     });;

关于它为什么会失败的任何想法? Mayb我错过了一个ajax密钥,或者我的语法可能已关闭。

让我知道!感谢。

3 个答案:

答案 0 :(得分:1)

发布数据的语法不正确:data: '{custID:' + custNoString + 'tempPass2:' + finalValue + '}'

尝试通过json格式传递数据data: { custID: custNoString, tempPass2: finalValue }

否则它不应该起作用。

更多查看此链接http://www.json.org/JSONRequest.html

答案 1 :(得分:1)

需要正确创建数据参数JSON。你在这里和那里都错过了一些单引号。

不是手动创建JSON字符串,而是先尝试创建一个对象,然后将其字符串化为数据。请参阅以下代码:

 $("#edit_password_form").submit(function (e) {
                         e.preventDefault();

                         var finalValue = value2.value;

                         <%string inputCust = Session[SessionKey.CUSTOMER_ID].ToString();%>
                         var custNoString = <%=inputCust%>

                         var dataObj = {};
                         dataObj.custID = custNoString;
                         dataObj.tempPass2 = finalValue;

                         $.ajax({
                             url: 'reciept.aspx/Button1_Click',
                             method: 'post',
                             contentType: 'application/json',
                             data: JSON.stringify(dataObj),
                             success: function(){

                                 alert("The function worked correctly");

                             },
                             error:function(){ alert("the function did not succeed");}
                         });
                     });;

答案 2 :(得分:0)

(代表OP发布答案)

最终为我工作的是:

 // Create the data object for the 2 parameters for the c# Method

                     var dataObj = { custID1: custNoString, tempPass2: finalValue };



                     // AJAX request for run the function

                     $.ajax({

                         type: 'post',

                         url: 'reciept.aspx/Button1_Click',

                         contentType: 'application/json; charset=utf-8',

                         data: JSON.stringify(dataObj),

                         success: function(){



                            alert("The function worked correctly");

                         },

                         error:function(){ alert("the function did not succeed");} 

                     });

首先创建数据对象是关键。感谢您的所有帮助和建议!