2

我有一个 Java Web 应用程序,它需要将文件上传到单独的 IIS 服务器。我对服务器和应用程序都有完全的管理控制权。

我正在使用 jQuery 插件从 blueimp ( http://blueimp.github.io/jQuery-File-Upload/ )上传文件

最初我遇到了浏览器安全问题,因为它是跨域的,所以我修改了 IIS 服务器以允许来源,因此之前失败的服务器的初始 OPTIONS 请求现在成功了。

然后是带有文件数据的 POST,该文件数据在服务器端成功并流式传输响应,但客户端一直在阻塞它。

使用谷歌浏览器查看网络选项卡,我看到状态“(已取消)。如果我点击请求并查看预览/响应选项卡,它们是空的。所以那里没有帮助。

然后,我在我的 fileupload 调用中添加了一个 jQuery 失败处理函数,并在其中放置了一个断点来检查 xhr 对象。没用,status 0,readyState 0,responseText 是空字符串,statusText 只是“错误”。伟大的。

在没有迹象表明出了什么问题的情况下,我该如何调试这个问题?

我尝试了一个单独的测试页面,在该页面中我使用标准 HTML 表单来执行上传到同一资源的操作,并且效果很好。收到回复没有任何问题。所以我猜它与CORS有关?但不知道是什么......我想如果 OPTIONS 请求通过了,那么应该没有问题。

这是我设置文件上传调用的代码:

input.fileupload({
            dataType: 'text',   
            maxFileSize : 100000000,
            done: function (e, response) {
                debugger;
            },
            fail: function (a, b) {             
                debugger;
            }
        });

它总是进入失败状态,通过挖掘这些参数,我可以找到 XHR 对象,但没有找到关于错误原因的有用细节。

我尝试了 Chrome 和 Firefox,它们都没有工作

我最初也尝试过 dataType 'json' 无济于事(我以 JSON 格式编写来自服务器的响应,并认为可能是解析问题所以切换到双方的 dataType 文本仍然没有进展)

请帮忙!

4

0 回答 0