JS POST数据的常用方法(javascript post语法)
JS POST常用两种方式,一个是POST json,一个是POST formData。formData就是我们传统的表单,只是这里用JS拼凑表单数据。
先看formData
// 创建FormData对象
const formData = new FormData();
// 添加文本字段
formData.append('username', '张三');
formData.append('email', 'zhangsan@example.com');
// 添加文件(假设HTML中有一个文件输入框 <input type="file" id="fileInput">)
const fileInput = document.getElementById('fileInput');
if (fileInput.files[0]) {
formData.append('avatar', fileInput.files[0]);
}
fetch('https://api.example.com/upload', {
method: 'POST',
body: formData
// 注意:不要设置Content-Type头,浏览器会自动设置正确的multipart/form-data格式
})
如果你有现成的HTML表单,在用append一个一个拼凑这样有点累,我们可以用以下方法
// 假设HTML中有一个表单 <form id="myForm">...</form>
const formElement = document.getElementById('myForm');
const formData = new FormData(formElement);
fetch('https://api.example.com/submit', {
method: 'POST',
body: formData
})
POST json 就简单一些,但json注意的是:要把json对象转换成json字符串,还要加个json头
fetch('https://api.example.com/users', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: '张三',
email: 'zhangsan@example.com'
})
})
如果简单的请求使用fetch就可以了,如果复杂的请求(比如:钩子之类的)使用axios等框架完成。
顺便讲讲后端接收POST过来的数据,我就以hono为例,express其实也差不多。
// 接收POST formData
const app = new Hono()
app.post('/upload', async (c) => {
const body = await c.req.parseBody()
console.log(body['file']) // 接受的文件
console.log(body['name'])// 接受的form
})
// 接收POST json
const app = new Hono()
app.post('/upload', async (c) => {
const json = await c.req.json()
console.log(json) // json对象
})
JS 可前可后
相关文章
- LeetCode 力扣官方题解 | 516.最长回文子序列
- iPhone必崩溃bug曝光!这个WiFi水太深谁也把握不住
- JS 写正则表达式,判断是否为手机号
- 算法 - 最长回文子序列(最长回文子串动态规划图解)
- 2023-04-28:将一个给定字符串 s 根据给定的行数 numRows以从上往下
- 2025-07-15:子字符串匹配模式。用go语言,给定一个字符串 s 和一
- 前端 JavaScript 字符串中提取数字
- C语言字符串操作总结大全(超详细)
- webpack的几个常见loader源码浅析,动手实现一个md2html-loader
- 推荐一个检测 JS 内存泄漏的神器(js内存泄漏的原因和场景)