我第一次使用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密钥,或者我的语法可能已关闭。
让我知道!感谢。
答案 0 :(得分:1)
发布数据的语法不正确:data: '{custID:' + custNoString + 'tempPass2:' + finalValue + '}'
尝试通过json格式传递数据data: { custID: custNoString, tempPass2: finalValue }
否则它不应该起作用。
答案 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");}
});
首先创建数据对象是关键。感谢您的所有帮助和建议!