javascript - XMLHttpRequest.send(file) 的 Fetch API 等价物是什么?

标签 javascript ajax html dom fetch-api

我正在尝试将客户端从 XMLHttpRequest 重构为旧后端以改用 Fetch API,但我很难弄清楚下面代码中与 xhr.send(file) 等效的 Fetch API 是什么。

input.addEventListener('change', function(event) {
  var file = event.target.files[0];
  var url = 'https://somedomain.com/someendpoint';
  var xhr = new XMLHttpRequest();
  xhr.open('POST', url, true);
  xhr.setRequestHeader('Content-Type', 'image/jpeg');
  xhr.send(file);
}

最佳答案

fetch 可以获取 second argument , init, 指定请求的高级选项。特别是,您可以指定 methodbody 选项:

fetch(url, {
  method: 'POST',
  headers: new Headers({
    "Content-Type": "image/jpeg",
  }),
  body: file,
})

您还可以将相同的选项传递给Request constructor .

body 必须是 Blob、BufferSource、FormData、URLSearchParams 或 USVString 对象。幸运的是,File 对象只是一种特殊的 Blob,可以使用 everywhere where Blobs are accepted .

关于javascript - XMLHttpRequest.send(file) 的 Fetch API 等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36604865/

相关文章:

javascript - 将对象从 View 页面传递到 Spring Controller

javascript - 使用ajax从php获取数据

html - 如何使用 CSS 向图像添加多层透明叠加层

javascript - 检测并处理img标签内的400错误

javascript - angularjs 未捕获错误 : Unknown provider:

javascript - 我如何使用 Chart.js 中的对象键迭代或从数组中获取所有对象

javascript - 如何与angular js联合获取最新记录

javascript - jQuery window.open 不工作

javascript - 互动问答游戏 - 如何使每个玩家的游戏计时相同

javascript - 如何编辑关于:blank iframe?的内容