尝试使用以下代码将文件上传到 servlet:
var fd = new FormData();
fd.append("file", document.getElementById('fileToUpload').files[0]);
var xhr = new XMLHttpRequest();
xhr.upload.addEventListener("progress", uploadProgress, false);
xhr.upload.addEventListener("load", transferComplete, false);
xhr.addEventListener("error", onError, false);
xhr.addEventListener("abort", onUploadCanceled, false);
xhr.open("POST", urlManager.getUploadHandlerUrl());
xhr.send(fd);
问题仅在chrome中(在Firefox中完美运行),说加载资源失败并且问题不一致。它有时会上传一次或两次开始大喊大叫。当这是错误时,它甚至不会调用服务器。
尝试使用此问题中示例中的jquery。但没有任何好处。
我想不出这样的事情怎么会发生。我感谢任何线索,谢谢。
编辑:当我包装我的 XHR 并按照另一个SO 答案中的说明显式设置异步时,它正在为至少 3-4 次上传工作并开始大喊大叫。(比以前好一点)。我怀疑它是否真的有效果。
当状态发生变化时,我正在记录就绪状态和状态。readyState 只是从 1 跳转到 4,状态为 0。