gpt4 book ai didi

jQuery AJAX 返回 200 OK 状态,但有错误。如何查看错误的详细信息?

转载 作者:行者123 更新时间:2023-12-03 22:41:19 25 4
gpt4 key购买 nike

我有以下 jQuery:

var fn = {
Load: function () {
$(".myclass input.Submit").click(function (e) {
var _IsValid = fn.IsValid();
if (_IsValid == false) {
e.preventDefault();
}
//Popup displays message fine if "return false;" is
//called here but then obviously never posts back.
});
}
, IsValid: function () {

var _IsValid = true;
$.ajax({
url: "/myURL"
, type: 'POST'
, contentType: 'application/json; charset=utf-8'
, data: JSON.stringify({ Barcode: $barcode.val(), Email: $email.val() })
, dataType: 'json'
, success: function (data) {
var array = eval(data);
if (array[0] == 0) {
_IsValid = false;
ShowPopup(array[1]);
}
}
, error: function (xhr, status, error) {

}
});
return _IsValid;
}
}

AJAX 响应为 200 OK,但 success 函数未运行。相反,它似乎正在运行 error 函数。

该脚本作为 ASP.NET ImageButton 的单击事件监听器运行。如果_IsValid==false,则调用e.preventDefault()以防止回发。

奇怪的是,如果我将 return false 添加到事件监听器函数的末尾,则此代码将运行 success 函数。

如何找出导致此错误的原因以便解决它?

最佳答案

我认为您当前遇到的问题是您的 IsValid 函数将始终返回 true。这是因为 AJAX post 在函数返回之前没有时间完成。毕竟它是一个异步函数。

据我所知,您希望使用 AJAX 请求验证表单,如果有效则提交表单,否则显示弹出窗口。如果这是正确的,你应该做类似的事情......

$(".myclass input.Submit").click(function (e) {
e.preventDefault();
ProcessForm();
});

function ProcessForm(){
$.ajax({
url: "/myURL"
, type: 'POST'
, contentType: 'application/json; charset=utf-8'
, data: JSON.stringify({ Barcode: $barcode.val(), Email: $email.val() })
, dataType: 'json'
, success: function (data) {
var array = eval(data);
if (array[0] == 0) {
ShowPopup(array[1]);
}
else//VALID
{
document.forms[0].submit();
//OR IF YOU HAVE MULTIPLE FORMS SPECIFY AN ID...
document.getElementById("FormElement").submit();
}
}
, error: function (xhr, status, error) {

}
});
}

关于jQuery AJAX 返回 200 OK 状态,但有错误。如何查看错误的详细信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9774726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com