与XMLHttpRequest 一样,fetch()既可以发送数据也可以接收数据。使用init 对象参数,可
以配置fetch()在请求体中发送各种序列化的数据。
- 发送JSON 数据
可以像下面这样发送简单JSON 字符串:
let payload = JSON.stringify({
foo: ‘bar’
});
let jsonHeaders = new Headers({
‘Content-Type’: ‘application/json’
});
fetch(‘/send-me-json’, {
method: ‘POST’, // 发送请求体时必须使用一种HTTP 方法
body: payload,
headers: jsonHeaders
});
在请求体中发送参数
因为请求体支持任意字符串值,所以可以通过它发送请求参数:
let payload = ‘foo=bar&baz=qux’;
let paramHeaders = new Headers({
‘Content-Type’: ‘application/x-www-form-urlencoded; charset=UTF-8’
});
fetch(‘/send-me-params’, {
method: ‘POST’, // 发送请求体时必须使用一种HTTP 方法
body: payload,
headers: paramHeaders
});
发送文件
因为请求体支持FormData 实现,所以fetch()也可以序列化并发送文件字段中的文件:
let imageFormData = new Form