【问题标题】:ajax request fail conditionajax 请求失败条件
【发布时间】:2012-03-18 22:49:51
【问题描述】:

我好像迷路了。我有一个 jQuery 请求,通过基本身份验证发送 GET 请求。我的问题是即使身份验证失败,错误代码也永远不会运行。 我的要求:

$.ajax({
    type: type,
    url: url,
    dataType: 'json',
    beforeSend: function(xhr) {
        xhr.setRequestHeader('Authorization', 'Basic ' + btoa(window.username + ":" + window.password));
    },
    success: callback,
    error:function(){
        console.log('ERROR: ' + jqXHR.status);
    },
    complete: function(jqXHR, textStatus) {
        console.log('VOTE: ' + jqXHR.status);
    }
});

我的 JSON 响应和 Status Code 都出现错误。我做错了什么?

响应正文:

{
"error": {
    "code": 401,
    "message": "Authentication failed"
}
}

响应头:

Status Code: 401
Date: Wed, 29 Feb 2012 12:45:03 GMT

提前致谢

【问题讨论】:

  • 服务器返回的状态码是什么
  • 你在哪里定义了jqXHR?
  • @Michel 这和我想的一样
  • “回调”函数定义了吗?
  • 类型:“GET”或“POST”

标签: jquery ajax http http-status-code-404


【解决方案1】:
function(){
    console.log('ERROR: ' + jqXHR.status);
}

不正确,因为变量 jqXHR 未定义,因此您在该行中遇到 javascript 异常。

试试

function(jqXHR){
    console.log('ERROR: ' + jqXHR.status);
}

【讨论】:

    【解决方案2】:

    我认为您没有定义传递给错误函数的变量。你试过了吗

    error: function(jqXHR, textStatus, errorThrown){
            console.log('ERROR: ' + jqXHR.status);
        },
    

    在您的情况下,我认为它会运行错误函数,但由于未定义 jqXHR.status 而给出错误

    【讨论】:

    • @Neelesh 您是在发出跨域请求还是 jsonp 请求?因为在这种情况下不会调用错误处理程序
    • 我没有发出跨域请求。奇怪的部分是控制不去任何功能。甚至没有成功和完整。
    【解决方案3】:

    将错误处理程序放在全局中以查看它是否有所作为(使用所有参数):

    jQuery(document).ajaxError(function(event, jqXHR, ajaxSettings, errorThrown) {
        var errorMessage = "Ajax error: " + ajaxSettings.url + " : " + errorThrown + " : " + jqXHR.statusText + " : " + jqXHR.status;
    
        if (jqXHR.status != "0" || errorThrown != "abort") {
            alert(errorMessage);
        }
    });
    

    编辑注意:全局的参数与本地化的参数略有不同

     error:function(jqXHR,textStatus,errorThrown){},
    

    也许让成功更明确?

    success: function(returnedStuff){
        callback(returnedStuff);
    },
    

    【讨论】:

      猜你喜欢
      • 2017-04-02
      • 2018-11-30
      • 2013-01-15
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多