尝试使用以下代码将文件上传到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中完美运行),表示无法加载资源且问题不一致。上传一次或两次,有时会开始大喊。当这是错误时,它甚至不会调用服务器。

使用来自this quesion中示例的jquery进行了尝试。但是没有好处。

我不知道这种事情会如何发生。我感谢任何潜在客户,谢谢。



编辑:当我包装XHR并按照另一个SO answer中的说明显式设置异步时,它正在处理至少3-4次上载并开始大喊大叫(比以前好一点)。我怀疑这是否真正有效。
状态更改发生时,我正在记录就绪状态和状态。 readyState将从1跳到4,状态保留为0。

最佳答案

我也有类似的问题,我的问题是通过解决HTTP与HTTPS冲突解决的。

如果上传文件的页面是通过HTTP提供的,而您发出的发布请求是HTTPS,则它可能会在Chrome中显示“资源加载失败”错误,这就是我的情况。

页面服务和发布请求都应为HTTP或两者均应为HTTPS,可以将二者组合。

我都做了HTTP,问题解决了。让我知道这是否也解决了您的问题。祝您好运。

10-06 04:26