我的jQuery正在工作,但回调第一次没有工作



我正在做一个学习jQuery的简单项目。我的问题是点击按钮后,我调用了一个jquery。它可以工作并将数据传输到控制器,但成功功能在第一次点击时不起作用。它在第二次点击时正常工作。使用我的参数,在这两个调用中,控制器中的方法返回true。但在第一次调用时,jquery不会在success函数中运行,但第二次调用会运行。

这是我的jquery:

function signin() {
var parameters = {
email: $('#emailtxt').val(),
password: $('#passwordtxt').val()
};
console.log(parameters);
$.ajax({
url: '@Url.Action("Login","Session")',
type: 'GET',
data: parameters,
dataType: 'json',
success: function (correctData) {
if (JSON.parse(correctData) == false) {
alert("Incorrect e-mail or password.");
} else if (JSON.parse(correctData) == true) {
window.location.assign('@Url.Action("Index","Home")');
}
}            
});
};

这是我在控制器中的代码:

public JsonResult Login(string email, string password)
{
using (var context= new ProjistDbContext())
{
var user = context.Users.FirstOrDefault(x => x.UserEmail == email && x.UserPassword == password);
if (user == null)
{
var result = JsonConvert.SerializeObject(false);
return Json(result, JsonRequestBehavior.AllowGet);
}
else
{
Session["UserId"] = user.Id;
var result = JsonConvert.SerializeObject(true);
return Json(result, JsonRequestBehavior.AllowGet);
}
}
}

我恳请你在这个问题上给予帮助。非常感谢。

我解决了我的问题,我想分享它。问题就是因为这个。。。我添加了类似按钮的;

<button>...</button>

这种定义正在刷新页面,并且在从控制器获取响应时导致错误。它有时也会出现类似的错误

XHR加载GET失败。。。

如果我将type="button"添加到html按钮定义中,它将停止刷新页面,所有帖子和响应都能正常工作。

我想分享一下解决方案。感谢大家的帮助。

最新更新