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

前端之家收集整理的这篇文章主要介绍了jQuery AJAX返回200 OK状态,但错误.如何查看错误的详细信息?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下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,但成功函数没有运行.相反,它似乎正在运行错误功能.

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

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

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

解决方法

我认为您目前遇到的问题是您的IsValid函数将始终返回true.这是因为在返回函数之前,AJAX帖子没有时间完成.毕竟它是一个异步功能.

从我可以告诉你想要有效的表格与AJAX请求,如果有效提交表格,否则显示一个弹出窗口.如果这是正确的你应该做的事情……

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

function ProcessForm(){
   $.ajax({
       url: "/myURL",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) {

         }
    });
}
原文链接:https://www.f2er.com/jquery/177313.html

猜你在找的jQuery相关文章