xhr [Chrome]发送在Linux(Debian)上运行的表单数据,但不发送Windows(10)

时间:2016-11-30 17:41:56

标签: google-chrome angular xmlhttprequest

在我的Angular 2应用程序中(但我猜它与Angular无关,而是与浏览器无关,因为我直接使用xhr),我发送表单数据(文件+字符串对象)。

问题是,在 Linux(Debian)上的Chrome浏览器上正常,但仍然在 Chrome 上,但在 Windows上运行( 10)它没有。

代码:

let xhr = new XMLHttpRequest();
let form = new FormData();

form.append('file', file, file.name); // the file is loaded correctly
form.append('payload', JSON.stringify(data)); // data is just a JSON object

xhr.onreadystatechange = function() { 
     if (xhr.readyState === XMLHttpRequest.DONE) {
         // we arrive here both on Debian and Windows 10
     }
} 
xhr.upload.onerror = function() { .... } // no error

xhr.open('POST', 'http://<my_url>', true);
xhr.send(form);

展望@ DevTools - &gt;网络 - &gt; http://my_url ,请求的有效负载是相同的:(这是来自Debian)

------WebKitFormBoundaryVBFM8mVbOsD54jDd
Content-Disposition: form-data; name="file"; filename="my file.csv"
Content-Type: text/csv

------WebKitFormBoundaryVBFM8mVbOsD54jDd
Content-Disposition: form-data; name="payload"

{"property1": "x", "property2": "y"}
------WebKitFormBoundaryVBFM8mVbOsD54jDd--

我看到的唯一区别是Windows上文件的内容类型(在有效负载中)是 application / octet-stream (据我所知,这可能是因为它被认为是“通用”文件,不是.csv类型的文本文件

任何线索为什么会发生这种情况?我的代码出了什么问题?(无论在Windows或Os X上的哪个浏览器,它似乎都在Linux上运行

0 个答案:

没有答案