如何捕获xmlhttprequest错误

时间:2014-01-07 13:32:05

标签: javascript jquery ajax cross-domain

我有一个ajax调用,并且在发出错误请求时我一直遇到错误。当提出好的请求时,它确实有效。我已经尝试了jsonp和所有这些东西,但这对我没有任何帮助。

这是错误的

XMLHttpRequest cannot load No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

这是我的代码。

var submit = function(){
        var url = ""
        var data = ["9b4e749d5cb6e069dd49cab93a69","aufujishngidrg"]
        for(var int = 0; int < data.length; int++) {
            console.log(data[int])
            url = *insert url*
            $.ajax({
                type:'GET',
                url:encodeURI(url),
                dataType: "json",
                contentType:"application/json; charset=utf-8",
                error:function (xmlHttpRequest,textStatus, xhr, ajaxOptions, thrownError) {
                    if(xmlHttpRequest.readyState == 0 || xmlHttpRequest.status == 0){
                        console.log("xmlhttpRequest error")
                        return;
                    }
                    else{
                        console.log("error")
                    }
                },
                success:function(data){
                    console.log(data)
                },
            });
        }
        console.log("derp")
    }

我从列表中发送一个哈希码,如果服务器在数据库中,则返回一个id。

在服务器端启用跨域通信,因此不应该是问题,因此良好的请求可以正常工作。当列表中存在未知哈希时,我得到此htttpxmlrequest错误并且循环中断。

问题是:如何捕获错误并继续迭代?

1 个答案:

答案 0 :(得分:0)

尝试在try catch语句中包装ajax调用以吞下错误

try {
  $.ajax{
    error: function(xmlHttpRequest,textStatus, xhr, ajaxOptions, thrownError){
      throw(thrownError)
    }
    success: function(){}
   }
} catch(err) {
  continue;
}