我正在尝试将客户端从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
,它指定请求的高级选项。特别是,您可以指定method
和body
选项:
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。