[英]What is the Fetch API equivalent of XMLHttpRequest.send(file)?
我正在嘗試將客戶端重構為XMLHttpRequest的舊后端,而不是使用Fetch API,我很難弄清楚下面代碼中xhr.send(文件)的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
可以使用第二個參數 init
,它指定請求的高級選項。 特別是,您可以指定method
和body
選項:
fetch(url, {
method: 'POST',
headers: new Headers({
"Content-Type": "image/jpeg",
}),
body: file,
})
您還可以將相同的選項傳遞給Request
構造函數 。
body
必須是Blob,BufferSource,FormData,URLSearchParams或USVString對象。 幸運的是,File對象只是一種特殊的Blob,可以在任何接受Blob的地方使用。
這可以這樣做:
var input = document.querySelector('input[type="file"]')
var data = new FormData()
data.append('file', input.files[0])
fetch('/avatars', {
method: 'POST',
body: data
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.