上一篇
场景引入:
凌晨2点,你盯着屏幕抓头发——明明后端API返回了数据,前端却死活收不到!😤 仔细一看,原来Content-Type
写错了… 今天我们就来彻底搞懂Ajax数据交互那些事儿,告别深夜debug!
// 传统写法:直接拼接到URL后 fetch('/api/user?name=小明&age=18') // 现代写法:用URLSearchParams const params = new URLSearchParams({ name: '小明', age: 18 }) fetch(`/api/user?${params}`)
适用场景:
⚠️ 注意:
encodeURIComponent
转义 const form = new FormData() form.append('avatar', fileInput.files[0]) form.append('username', '张三') fetch('/api/upload', { method: 'POST', body: form // 注意:不要手动设置Content-Type! })
特点:
fetch('/api/login', { method: 'POST', headers: { 'Content-Type': 'application/json' // 必须声明! }, body: JSON.stringify({ username: 'admin', password: '123456' }) })
优势:
application/x-www-form-urlencoded
:传统表单格式(需手动拼接key=value&
) multipart/form-data
:FormData专属(边界值自动生成) // axios自动根据data类型设置Content-Type axios.post('/api', { name: '李四' }) // 默认JSON axios.post('/api', new FormData()) // 自动切换multipart
// 下载Excel文件 fetch('/api/export').then(res => res.blob()).then(blob => { const link = document.createElement('a') link.href = URL.createObjectURL(blob) link.download = '报表.xlsx' link.click() })
根据2025年开发者调研:
:
格式 | Content-Type | 典型场景 |
---|---|---|
URL参数 | 无需设置 | 搜索、筛选 |
FormData | multipart/form-data | 文件上传 |
JSON | application/json | 增删改查API |
你可以优雅地和后端联调了!🎉 (再也不用凌晨2点骂骂咧咧了~)
本文由 莘紫桐 于2025-08-02发表在【云服务器提供商】,文中图片由(莘紫桐)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/512725.html
发表评论