Jquery 对服务器端的调用失败。{“消息”:“传递的对象无效”}
我的ajax调用不会转到服务器端。 这是我的密码:Jquery 对服务器端的调用失败。{“消息”:“传递的对象无效”},jquery,asp.net,ajax,Jquery,Asp.net,Ajax,我的ajax调用不会转到服务器端。 这是我的密码: function InsertData() { debugger; var email = $("#txtemail").val(); var pass = $("#txtpass").val(); var firstName = $("#txtfirstName").val(); var lastName = $("#txtlastName").val(); var userData = "{
function InsertData() {
debugger;
var email = $("#txtemail").val();
var pass = $("#txtpass").val();
var firstName = $("#txtfirstName").val();
var lastName = $("#txtlastName").val();
var userData = "{'email':'" + email + "','pass':'" + pass + "'firstName':'" + firstName + "','lastName':'" + lastName + "'}";
$.ajax({
type: "POST",
url: "Home.aspx/ExecuteInsert",
data: userData,
contentType: "application/json;charset=utf-8",
dataType: "json",
success: function (msg) {
alert(msg);
},
error: function (x, e) {
alert("The call to the server side failed. " + x.responseText);
}
});
}
C#
不会转到服务器端,而是引发此错误:
对服务器端的调用失败。{“消息”:“传递的对象无效}
您发送的有效负载格式不正确。请重试
var userData = {'email': email ,
'pass': pass,
'firstName': firstName,
'lastName': lastName };
[评论]:我不能写评论,所以我写在这里。 我做了你的场景,但它并没有给我带来问题。虽然当我用下面的链接测试
userData
时,它说“字符串应该用双引号括起来”
尝试使用如下双引号:
var userData = "{ \"email\":\"" + email +
"\" , \"pass\" : \"" + pass +
"\" , \"firstName\" : \"" + firstName +
"\" , \"lastName\" : \"" + lastName +
"\" }";
您不应该构建json字符串,json是一个javascript对象
var userData = {
email: email,
pass: pass,
firstName: firstName,
lastName: lastName
}
它仍然不起作用,它说“消息”:“无效的JSON原语:emailjquery可能没有将其作为JSON数据发送。相反,它将其作为查询字符串发送。try data:JSON.stringify(userData)对不起,先生,在修改代码后,它仍然会生成相同的错误,不确定这里出了什么问题。不要在ajax调用中使用userdata,而是直接在调用中创建json对象,如下所示:data:json.stringify({'email':email,'pass':pass,'firstName':firstName,'lastName'})另请参见和
var userData = {
email: email,
pass: pass,
firstName: firstName,
lastName: lastName
}