2016-05-02 206 views
1

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

这是我目前的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键或者我的语法可能关闭。

让我知道!谢谢。

+2

请不要将您的数据作为字符串传递,而应将其作为对象传递。 '数据:{custID:custNoString,tempPass2:finalValue}'。 –

+1

备注:考虑使用常规按钮而不是提交按钮。在按钮点击事件中调用你的函数。这将允许你摆脱'e.preventDefault()'。 –

回答

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");} 
         }); 
        });; 
+0

好吧,我添加的数据数据:JSON.stringify({custID1:dataObj.custID1,tempPass2:dataObj.tempPass2})这样的,这会是正确的吗? – Learn12

1

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

尝试通过JSON格式这样data: { custID: custNoString, tempPass2: finalValue }

否则它不应该工作来传递数据。

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

+0

Nazmul,我需要以json格式的方式使用撇号吗? – Learn12

+0

必须要得到最好的负担 –

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");} 

        }); 

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