尝试使用以下代码将文件上传到 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中完美运行),说Failed to load the resources,与问题不一致。它上传一两次有时会开始喊叫。当出现此错误时,它甚至不会调用服务器。
尝试使用 this quesion 中的示例中的 jquery 。但没有任何好处。
我无法想象这样的事情怎么会发生。我很感谢任何线索,谢谢。
编辑:当我包装 XHR 并按照另一个 SO answer 中所述显式设置异步时,它至少可以进行 3-4 次上传并开始大喊大叫。(比之前好一点)。我怀疑它是否真的有效果。
当状态发生变化时,我正在记录就绪状态和状态。 ReadyState 只是从 1 跳到 4,状态仍为 0。
最佳答案
我也遇到了类似的问题,通过解决 HTTP 与 HTTPS 冲突解决了我的问题。
如果上传文件的页面是通过 HTTP 提供的,并且您发出的 post 请求是 HTTPS,那么它可能会在 Chrome 中给出“资源加载失败”错误,这就是我的情况。
页面服务和 Post 请求都应该是 HTTP 或都应该是 HTTPS ,它可以是两者的组合。
我做了 HTTP,我的问题就解决了。让我知道这是否也解决了您的问题。祝您好运。
关于javascript - 选项 资源加载失败,仅在 Chrome 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14126774/