问题: 浏览器设置的意外XMLHttpRequest内容长度标头(大约15%太大) 预期:内容长度:130533 得到:内容长度:149830 我并不完全关心这个问题,但是我的请求被拒绝了,这是我能注意到的唯一有趣的事情。
我正在创建XMLHttpRequest,我尝试将字符串中的文件作为multipart / formdata上传。我试图通过发出跨域请求来模仿访问网站(具有chrome扩展的权限)。
我写了类似下面的代码片段(最初使用fetch api,但结果相同)。
const multipart_data = get_multipart_data(); // created using url provided above
console.log("Length is: " + multipart_data.length);
const xhr = new XMLHttpRequest();
xhr.addEventListener('load', function(event) {
console.log("LOADED!");
});
// Define what happens in case of error
xhr.addEventListener('error', function(event) {
console.log("ERROR!");
});
// Set up our request
xhr.open('POST', location);
// Add the required HTTP header to handle a multipart form data POST request
xhr.setRequestHeader('Content-Type','multipart/form-data; boundary=' + file.boundary);
// And finally, send our data.
xhr.send(multipart_data);
请注意,我记录了请求正文的长度。我还检查了chrome设置的内容长度标题,并且存在很大的差异。
任何可能导致这种情况的想法?