1

我的前端是用 Polymer 编写的,我的后端是带有 Jersey 的 Spring Boot 应用程序。

当我上传文件时,我在 IE11 中遇到了一个奇怪的问题。作为 multipart/form-data 请求的一部分,我需要同时发送文件和一些 JSON 数据。我正在使用vaadin-upload组件来上传文件。查看代码在上传时似乎没有做任何奇怪的事情,即他们使用 XHR 和 FormData 接口,但没有什么太高级而与 IE 11 不兼容(据我所见)。

当尝试在控制台 (F12) 关闭的情况下上传文件时,HTTP 转储如下(一些标头被删除并且 pdf 内容被截断):

POST http://localhost:10004/api/documents HTTP/1.1
Content-Type: multipart/form-data; boundary=---------------------------7e22971016a09e2
Content-Length: 283537
Host: localhost:10004

-----------------------------7e22971016a09e2
Content-Disposition: form-data; name="document"; filename="test.pdf"
Content-Type: application/pdf

%PDF-1.5
...
%%EOF
-----------------------------7e22971016a09e2--

****

HTTP/1.1 500
Content-Type: application/json
Date: Mon, 05 Feb 2018 12:50:16 GMT

{"code":"INTERNAL_SERVER_ERROR","message":"Internal Server Error","httpStatus":{"code":500,"reason":"Internal Server Error"}}

打开控制台后如下:

POST http://localhost:10004/api/documents HTTP/1.1
Content-Type: multipart/form-data; boundary=---------------------------7e228d16a09e2
Content-Length: 283817
Host: localhost:10004

-----------------------------7e228d16a09e2
Content-Disposition: form-data; name="document"; filename="test.pdf"
Content-Type: application/pdf

%PDF-1.5
...
%%EOF
-----------------------------7e228d16a09e2
Content-Disposition: form-data; name="data"

{"id": "123456"}
-----------------------------7e228d16a09e2--

****

HTTP/1.1 200
Content-Type: application/json
Date: Mon, 05 Feb 2018 12:53:14 GMT

{"id":"987654"}

我可以看到,当控制台关闭时,IE 不会发送 multipart/form-data 中的“数据”部分。我不知道为什么会这样。打开控制台时,它在 Chrome 和 IE 中运行良好(但当然我不会要求用户打开控制台)。

关于什么可能导致这种行为的任何想法?

4

0 回答 0