场景引入:
小明正在开发一个用户注册功能,后端接口要求接收JSON格式的数据,他抓耳挠腮:"用jQuery的$.ajax
怎么才能把表单数据转成JSON提交呢?🤔" 别急!今天我们就手把手搞定这个高频需求!
$.ajax({ url: '/api/submit', // 你的接口地址 type: 'POST', // 推荐POST提交JSON contentType: 'application/json', // 关键头信息! dataType: 'json', // 预期返回的数据类型 data: JSON.stringify({ // 必须转为JSON字符串 username: '码农小明', age: 28 }), success: function(response) { console.log('提交成功啦~', response); 🎉 }, error: function(xhr) { console.error('翻车了:', xhr.status); 😱 } });
关键点说明:
contentType
必须设置为application/json
,告诉后端这是JSON数据 data
要用JSON.stringify()
转换对象为字符串 @RequestBody
) 实际开发中,我们常需要收集表单值:
// 获取表单数据转为对象 const formData = { name: $('#name').val(), email: $('#email').val(), hobbies: $('#hobbies').val().split(',') // 多选值处理 }; // 提交逻辑 $.ajax({ url: '/api/user', type: 'POST', contentType: 'application/json', data: JSON.stringify(formData), success: (res) => { alert(`欢迎加入,${res.username}!`); ✨ } });
💡 小技巧:
$('#form').serializeArray()
可快速获取表单键值对数组 ❌ 问题1:后端收不到数据?
✅ 检查是否漏了contentType
设置,或JSON字符串格式错误
❌ 问题2:跨域请求失败?
✅ 确保后端开启了CORS支持,示例头信息:
Access-Control-Allow-Origin: * Access-Control-Allow-Headers: Content-Type
❌ 问题3:特殊字符报错?
✅ 用encodeURIComponent()
处理值中的特殊符号
// 提交用户订单数据 function submitOrder() { const order = { userId: 10086, items: [ { id: 'A001', qty: 2 }, { id: 'B205', qty: 1 } ], remark: '加急订单!' }; $.ajax({ url: '/api/orders', type: 'POST', contentType: 'application/json', data: JSON.stringify(order), beforeSend: function() { $('#submitBtn').text('提交中...').prop('disabled', true); ⏳ }, complete: function() { $('#submitBtn').text('提交').prop('disabled', false); }, success: function(res) { showToast(`订单创建成功!编号: ${res.orderNo}`); ✅ }, error: function(xhr) { showToast(`提交失败: ${xhr.responseJSON?.message || '服务器异常'}`); ❌ } }); }
虽然jQuery仍在许多老项目中使用,但现代前端更推荐:
fetch API
+ async/await
不过只要维护老项目,掌握jQuery AJAX仍是必备技能!💪
:记住三个关键点 → 设contentType、转JSON字符串、正确处理响应,你就能轻松玩转JSON提交啦! 🚀
本文由 成梧 于2025-07-30发表在【云服务器提供商】,文中图片由(成梧)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/483107.html
发表评论