1. 请求content-type (用来指定请求体或响应体的类型)
- application/x-www-form-urlencoded:参数以键值对形式传递,适合普通表单提交。(常用)
- multipart/form-data:用于文件上传,也可以包含其他键值对。(常用)
- application/json:用于发送json格式的数据,广泛应用于api交互。(常用)
- text/plain:用于发送纯文本数据。
- application/xml 或 text/xml:用于发送xml格式的数据。
2. 常用请求方式
get:常用于查询,一般拼接在url后面
如:http://example.com/api/resource?key1=value1&key2=value2
// 构造查询字符串,形如:key1=value1&key2=value2 const queryparams = new urlsearchparams(); queryparams.append('key1', 'value1'); queryparams.append('key2', 'value2'); // 构造完整的url const url = `http://example.com/api/resource?${queryparams.tostring()}`; // 发送get请求 fetch(url) .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error(error));
post:常用于新增,请求参数放在请求体中
content-type = ‘application/json’
const user = { id: 1, name: 'john doe', email: 'john.doe@example.com' }; fetch('/api/users', { method: 'post', headers: { 'content-type': 'application/json' }, body: json.stringify(user) }) .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error(error));
content-type = ‘application/x-www-form-urlencoded’
const queryparams = new urlsearchparams(); queryparams.append('key1', 'value1'); queryparams.append('key2', 'value2'); fetch('/api/users', { method: 'post', headers: { 'content-type': 'application/x-www-form-urlencoded' }, body: queryparams.tostring() }) .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error(error));
content-type = ‘multipart/form-data’
// javascript 发送请求 const formdata = new formdata(); formdata.append('file', fileinput.files[0]); formdata.append('description', 'this is a test file.'); fetch('/upload', { method: 'post', body: formdata // 不需要设置content-type,formdata会自动设置 }) .then(response => response.json()) .then(data => console.log(data));
put: 常用于修改,请求参数放在请求体中
const user = { id: 1, name: 'john doe', email: 'john.doe@example.com' }; fetch('/api/users', { method: 'put', headers: { 'content-type': 'application/json' }, body: json.stringify(user) }) .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error(error));
delete: 常用于删除,请求参数放在请求体中或url中
// 删除单条记录时 fetch('/api/users/1', { method: 'delete' }) .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error(error)); // 删除多条记录时 const ids=[1,2,3,4] fetch('/api/users', { method: 'delete', headers: { 'content-type': 'application/json' }, body: json.stringify(ids) }) .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error(error));
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论