Servlets 为什么我的上传错误消息仅由Edge接收?

Servlets 为什么我的上传错误消息仅由Edge接收?,servlets,jakarta-ee,cross-browser,jquery-file-upload,ajax-upload,Servlets,Jakarta Ee,Cross Browser,Jquery File Upload,Ajax Upload,我使用MultipartConfig通过Servlet处理文件上载,如果文件太大,则发送错误消息: private void doUpload(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/plain"); response.se

我使用MultipartConfig通过Servlet处理文件上载,如果文件太大,则发送错误消息:

       private void doUpload(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
            response.setContentType("text/plain");
            response.setCharacterEncoding("UTF-8");

            Part filePart;
            try {
                filePart = request.getPart("file");
            } catch (IllegalStateException e) {
                System.out.println("File To Large");
                response.setStatus(HttpServletResponse.SC_REQUEST_ENTITY_TOO_LARGE);
                PrintWriter writer = response.getWriter();
                writer.println("failure:filetobig");
                writer.flush();
                writer.close();
                return;
            }
         ... (file handling) ...
        }
如果我将Servlet与Jquery文件上传(基于Ajax)一起使用,并且文件大小超过maxFileSize,Edge将返回正确的错误消息,状态代码为413,就绪状态为4。如果我对Firefox或Chrome执行相同操作,我会收到状态代码0,就绪状态0,并且开发工具中的网络选项卡显示未收到任何应答。

在Firefox中,比特率从负变为正,Chrome在一段时间后返回NaN。无论我使用哪种浏览器,
System.out.println(“文件到大”)被执行。如果使用cURL执行上载请求,则返回正确的错误消息

我的MultipartConfig用于测试此功能:

@MultipartConfig(maxFileSize = 1024 * 1024 * 30, // 30 MB
        maxRequestSize = 1024 * 1024 * 1000 // 1000 MB
)

我算出了:服务器重置了连接,因为MaxSweentSize设置得太低了

见:

奇怪的是,Edge并不关心这一点,而是显示了正确的消息