我正在尝试将我的电子邮件和密码发送到我的家庭Controller jsonresult方法。 电子邮件和密码的值显示在第一个警报中,但是当我将userCredential传递给数据时,它将显示警报未定义。 电子邮件和密码的值未在ajax post方法中传递
$("#button_val").click(function () {
var userCrdential = "email=" + $("#username").val() + "&password="
+ $("#pwd").val();
alert(userCrdential);
$.ajax({
type: "POST",
url: "/Home/adduser",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: userCrdential,
success: function (res) {
// alert("data is posted successfully");
if (res.success == true)
alert("data is posted successfully");
else {
// alert("Something went wrong. Please retry!");
}
},
error: function (xhr, textStatus, errorThrown) {
alert(xhr.statusMessage);
}
});
});.
控制器
[HttpGet] public JsonResult adduser(user obj) { }
答案 0 :(得分:1)
通过查看您的评论,我观察到的第一件事是,您正在ajax调用上使用post方法,而在控制器级别上,它是http get。可能是问题所在。最好也为您的操作方法添加代码。
这是在mvc中通过ajax发布对象的示例示例,
[HttpPost]
public ActionResult YourMethodName(MyViewModel myViewModel)
{
//your code goes here.
}
您可以像下面这样进行ajax调用,
var requestData = {
Email: 'pass the email value here',
Password: 'pass the password value here')
};
$.ajax({
url: '/en/myController/YourMethodName',
type: 'POST',
data: JSON.stringify(requestData),
dataType: 'json',
contentType: 'application/json; charset=utf-8',
error: function (xhr) {
alert('Error: ' + xhr.statusText);
},
success: function (result) {
},
async: true,
processData: false
});
答案 1 :(得分:0)
在控制器方法中,您使用[HttpGet]
,但在ajax请求中,您编写POST
。因此,转到一个选项POST
或GET
。我用GET
编写解决方案,首先使用此方法更改了Controller方法:
[HttpPost]
public JsonResult adduser(string email, string password) {
// work here
}
然后修改您的代码:
$("#button_val").click(function () {
var userCrdential = "email:"+ $("#username").val()+", password:"+ $("#pwd").val();
alert(userCrdential);
$.ajax({
type: "POST",
url: "/Home/adduser",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: {userCrdential },
success: function (res) {
// alert("data is posted successfully");
if (res.success == true)
alert("data is posted successfully");
else {
// alert("Something went wrong. Please retry!");
}
},
error: function (xhr, textStatus, errorThrown) {
alert(xhr.statusMessage);
}
});
});