为了账号安全,请及时绑定邮箱和手机立即绑定

jQuery ajax错误函数

jQuery ajax错误函数

慕田峪7331174 2019-08-09 17:19:54
jQuery ajax错误函数我有一个ajax调用将数据传递给页面,然后返回一个值。我已经从页面检索了成功的调用,但我编写了它,以便在asp中引发错误。我如何从jquery中检索该错误?例如:cache: false,url: "addInterview_Code.asp",type: "POST",datatype: "text",data: strData,success: function (html) {     alert('successful : ' + html);     $("#result").html("Successful");},error: function (error) {     **alert('error; ' + eval(error));**}这是我不理解的错误位。在函数中我需要放置什么参数,以便我可以使用我在服务器中引发的错误消息。
查看完整描述

3 回答

?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

Ajax error函数中的必需参数是jqXHR, exception,您可以像下面这样使用它:

$.ajax({
    url: 'some_unknown_page.html',
    success: function (response) {
        $('#post').html(response.responseText);
    },
    error: function (jqXHR, exception) {
        var msg = '';
        if (jqXHR.status === 0) {
            msg = 'Not connect.\n Verify Network.';
        } else if (jqXHR.status == 404) {
            msg = 'Requested page not found. [404]';
        } else if (jqXHR.status == 500) {
            msg = 'Internal Server Error [500].';
        } else if (exception === 'parsererror') {
            msg = 'Requested JSON parse failed.';
        } else if (exception === 'timeout') {
            msg = 'Time out error.';
        } else if (exception === 'abort') {
            msg = 'Ajax request aborted.';
        } else {
            msg = 'Uncaught Error.\n' + jqXHR.responseText;
        }
        $('#post').html(msg);
    },});

DEMO FIDDLE


参数

jqXHR:

它实际上是一个看起来像这样的错误对象

您还可以在自己的浏览器控制台中查看此内容,方法是使用console.log以下error函数:

error: function (jqXHR, exception) {
    console.log(jqXHR);
    // Your error handling logic here..}

我们使用status此对象的属性来获取错误代码,就像我们获得status = 404一样,这意味着找不到请求的页面。它根本不存在。基于该状态代码,我们可以将用户重定向到登录页面或我们的业务逻辑需要的任何内容。

例外:

这是字符串变量,显示异常类型。因此,如果我们收到404错误,则exception文本只是“错误”。同样,我们可能会将'超时','中止'作为其他异常文本。


取消通知:jqXHR.success()jqXHR.error()jqXHR.complete()回调弃用的jQuery 1.8。要准备的代码为他们的最终消除,使用jqXHR.done()jqXHR.fail()jqXHR.always()来代替。

因此,如果您使用的是jQuery 1.8或更高版本,我们需要更新成功和错误函数逻辑,如: -

// Assign handlers immediately after making the request,// and remember the jqXHR object for this requestvar jqxhr = $.ajax("some_unknown_page.html")
    .done(function (response) {
        // success logic here
        $('#post').html(response.responseText);
    })
    .fail(function (jqXHR, exception) {
        // Our error logic here
        var msg = '';
        if (jqXHR.status === 0) {
            msg = 'Not connect.\n Verify Network.';
        } else if (jqXHR.status == 404) {
            msg = 'Requested page not found. [404]';
        } else if (jqXHR.status == 500) {
            msg = 'Internal Server Error [500].';
        } else if (exception === 'parsererror') {
            msg = 'Requested JSON parse failed.';
        } else if (exception === 'timeout') {
            msg = 'Time out error.';
        } else if (exception === 'abort') {
            msg = 'Ajax request aborted.';
        } else {
            msg = 'Uncaught Error.\n' + jqXHR.responseText;
        }
        $('#post').html(msg);
    })
    .always(function () {
        alert("complete");
    });

希望能帮助到你!


查看完整回答
反对 回复 2019-08-09
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

试试这个:

error: function(jqXHR, textStatus, errorThrown) {
  console.log(textStatus, errorThrown);}

如果您想通知您的前端有关验证错误,请尝试返回json:

dataType: 'json',success: function(data, textStatus, jqXHR) {
   console.log(data.error);}

你的asp脚本应该返回:

{"error": true}


查看完整回答
反对 回复 2019-08-09
?
郎朗坤

TA贡献1921条经验 获得超9个赞

这是你如何拉出asp错误。

              cache: false,
              url: "addInterview_Code.asp",
              type: "POST",
              datatype: "text",
              data: strData,
              success: function (html) {
                  alert('successful : ' + html);
                  $("#result").html("Successful");
              },
              error: function (jqXHR, textStatus, errorThrown) {
                  if (jqXHR.status == 500) {
                      alert('Internal error: ' + jqXHR.responseText);
                  } else {
                      alert('Unexpected error.');
                  }
              }


查看完整回答
反对 回复 2019-08-09
  • 3 回答
  • 0 关注
  • 622 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信