javascript - 使用 XHR 的多部分表单数据 - 无效请求

标签 javascript file-upload xmlhttprequest sapui5

我正在使用FileUploader UI5 元素使用 XMLHttpRequest 上传文件(POST 操作),下面是我的代码片段 -

      var input = document.querySelector('input[type="file"]');
      var data = new FormData();
      data.append("files", input.files[0]);
      var xhr = new XMLHttpRequest();
      xhr.open("POST","https://URL");
      xhr.setRequestHeader('Content-Type', 'multipart/form-data');
      xhr.setRequestHeader("apikey", "XXXXXXXXXXXXXXXXX");
      xhr.setRequestHeader("accept", "application/json");
      xhr.send(data);

但是在推送请求时,我遇到了异常。不知道为什么我的后期操作失败,任何帮助将不胜感激。

错误描述 - 此服务至少需要 1 个文件。请将您的文件放入 POST 请求的 files 字段中”

<小时/>

这是请求 header 和负载的样子 -

Request Header - 

Accept:*/*
Accept-Encoding:gzip, deflate, br
Accept-Language:en-US,en;q=0.8
apikey:RGIukzqxB0GWhRaMMcCTmYGHnEWgk5qI
Connection:keep-alive
Content-Length:15
Content-Type:text/plain;charset=UTF-8
Host:sandbox.api.sap.com
Origin:https://webidetesting2532276-be010f3f7.dispatcher.us1.hana.ondemand.com
Referer:https://webidetesting2532276-be010f3f7.dispatcher.us1.hana.ondemand.com/extended_runnable_file.html?hc_orionpath=%2Fbe010f3f7%24S0015741697-OrionContent%2Fsap.ui.unified.sample.FileUploaderComplex&origional-url=index.html&sap-ui-appCacheBuster=&sap-ui-xx-componentPreload=off
User-Agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36



Request Payload -
[object Object]

最佳答案

您已显式设置 Content-Type,但缺少 MIME 边界参数。完全省略 header 并允许 XHR 从 FromData 对象推断 Content-Type。

关于javascript - 使用 XHR 的多部分表单数据 - 无效请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45575360/

相关文章:

c++ - 使用 XMLHTTPRequest 异步轮询 ReadyState

php - 在php中从jquery检索数组值

java - Spring 上传文件

node.js - 错误 : ENOENT: no such file or directory, 使用 chai 打开 '../test/testFiles/shadab.jpeg' 文件上传测试用例

java - Web 应用程序内的路径不是直接链接

javascript - 如何使用 Javascript 在 html 文件中搜索字符串?

javascript - ngChecked 取消选择复选框

javascript - 使用 ng-repeat 访问 ng-form 元素/值

javascript - 如何为 jQuery.validator 添加自定义消息?

javascript - 使用 blob、XMLHttpRequest 和 WebSQL - 尝试将 blob 保存到 WebSQL 中,然后恢复到 window.URL.createObjectURL