Ben*_*ons 24 javascript ajax error-handling xmlhttprequest
我正在使用FormData来aj文件上传.上传有效,但问题是永远不会调用"错误"回调.即使我的HTTP响应是500内部服务器错误(为了测试这个我调整服务器以500响应),调用"加载"回调.
function upload_image() {
var form = document.getElementById('upload_image_form');
var formData = new FormData(form);
var xhr = new XMLHttpRequest();
xhr.addEventListener("load", function(e) {
alert("Success callback");
}, false);
xhr.addEventListener("error", function(e) {
alert("Error callback");
}, false);
xhr.open("POST", "/upload_image");
xhr.send(formData);
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?我在Chrome上测试了这个.
Joe*_*Joe 24
此设置应该更好地满足您的需求:
var req = new XMLHttpRequest();
req.open('POST', '/upload_image');
req.onreadystatechange = function (aEvt) {
if (req.readyState == 4) {
if(req.status == 200)
alert(req.responseText);
else
alert("Error loading page\n");
}
};
req.send(formData);
Run Code Online (Sandbox Code Playgroud)
在您的代码错误中,永远不会调用回调,因为它仅由网络级错误触发,它会忽略HTTP返回码.