使用jquery ajax在firefox中不调用错误和完整的回调

时间:2015-03-19 19:08:00

标签: javascript jquery ajax

以下按预期工作。

    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == XMLHttpRequest.DONE) {
            if (xmlhttp.status == 200) {
                document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
            }
            else if (xmlhttp.status == 400) {
                alert('There was an error 400')
            }
            else {
                alert('something else other than 200 was returned:' + xmlhttp.status);
            }
        }
    }
    xmlhttp.open("GET", "/services", true);
    xmlhttp.send();

警告'返回了200以外的其他内容:404'。

但是以下ajax与jquery无法正常工作。

     $.ajax({
        type: "get",
        url: "/services",    
        error: function() {
            console.log("A");
        },
        complete: function (xhr, data) {
            console.log(arguments);
            if (xhr.status != 0)
                alert('success1');
            else
                alert('fail2');
        }
    })

Firebug显示404,但不会调用上面代码中的警报或控制台。 我一直依赖jquery来解决跨浏览器问题,现在我正在考虑回退到XMLHttpRequest()。

1 个答案:

答案 0 :(得分:0)

原来,问题是由于我的构建脚本损坏了我的代码(包括jquery)。我不知道为什么它不起作用。

但在require build grunt文件中设置optimize: "none",,一切正常。