以下按预期工作。
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()。
答案 0 :(得分:0)
原来,问题是由于我的构建脚本损坏了我的代码(包括jquery)。我不知道为什么它不起作用。
但在require build grunt文件中设置optimize: "none",
,一切正常。