本资源提供了一个关于前端使用ajax或axios向后端Spring MVC提交数据的实例,涵盖了两种不同的数据格式——JSON格式字符串和JSON对象。示例旨在帮助初学者理解这两种常见方法。 在Web开发中,前端与后端的数据交互是必不可少的。本示例介绍的是一种常见的数据提交方式,即通过JavaScript的异步请求库,如jQuery的ajax和axios,将数据发送到服务器。以下是详细的解析: ### JSON格式字符串提交 #### 前端(jQuery) 当前端页面的数据是以JSON格式字符串的形式存在时,可以使用jQuery的`$.ajax`方法进行提交。首先,创建一个JSON格式的字符串,例如: ```javascript var bjFormData = '{'; bjFormData += '"pmx":"' + pmx + '",'; bjFormData += '"vmd":"' + vmd + '"'; bjFormData += '}'; ``` 然后,使用`$.ajax`设置请求参数: - `type`:指定请求类型,这里是"post"。 - `url`:指定请求的URL,例如"bakevideojson"。 - `contentType`:指定数据的Content-Type,这里应设为"application/json"。 - `dataType`:表示期望的返回数据类型,可选,但在此例子中设为"json"。 - `data`:发送的数据,需使用`JSON.stringify()`将其转换为JSON字符串。 - `success`:请求成功后的回调函数。 示例代码: ```javascript $.ajax({ type: "post", url: "bakevideojson", contentType: "application/json", dataType: "json", data: JSON.stringify(bjFormData), success: function (data) { // 处理返回数据 } }); ``` #### 后端(Spring MVC) 在后端,可以使用`@RequestBody`注解来接收前端发送的JSON字符串。`JSONObject`是用于解析JSON的Java库。例如: ```java import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import org.json.JSONObject; @RestController public class MyController { @PostMapping("bakevideojson") public ResponseStatus testJsonFormSubmit(ModelMap model, @RequestBody JSONObject jsonObj) { String pmx = jsonObj.optString("pmx", null); String vmd = jsonObj.optString("vmd", null); // 其他业务逻辑... } } ``` ### JSON对象提交 #### 前端(jQuery & Axios) 当数据是以JSON对象的形式存在时,提交方式基本类似,但无需手动构建JSON字符串。对于jQuery,仍使用`$.ajax`,只是数据部分直接传入JSON对象: ```javascript let dataObj = { pmx: obj1, vmd: obj2, width: obj3 }; $.ajax({ type: "post", url: "testjsonfrom", contentType: "application/json", dataType: "json", data: JSON.stringify(dataObj), success: function (data) { console.log(data); } }); ``` 对于axios,使用更加简洁,直接将JSON对象作为`data`参数即可,无需`processData`和`contentType`设置,因为axios会自动处理: ```javascript axios({ url: 'testjsonfrom', method: 'post', data: dataObj, crossDomain: true }).then(response => { console.log(response.data); }).catch(error => { console.error(error); }); ``` #### 后端(Spring MVC) 后端接收JSON对象的方法与前一种情况相同,只需确保JSON对象的键与后端接口中字段名匹配即可。 在实际开发中,根据项目需求,可以选择适合的库和数据格式。同时,确保前后端的Content-Type匹配,以正确解析和处理数据。在处理JSON数据时,要特别注意异常处理,防止因数据格式错误导致的程序异常。
var bjFormData = '{';
bjFormData += '"pmx":"'+pmx+'",';
bjFormData += '"vmd":"'+vmd+'"';
bjFormData += '}';
使用jquery时:
$.ajax({
type: "post",
url: "bakevideojson",
contentType: "application/json", //必须有
dataType: "json", //表示返回值类型,不必须
data:JSON.stringify(bjFormData),//必须格式化
success: function(data) {
}
});
后端接口可用 @RequestBody JSONObject 接收数据,如:
public ResponseStatus testjsonformSubmit(ModelMap model,@RequestBody JSONObject jsonObj){
String pmx = jsonObj.optString("pmx", null);
String vmd = jsonObj.optString("vmd", null);
}
例2:前端页面提交数据为json对象时,如:
let dataObj = {
pmx: obj1,
vmd: obj2,
width:obj3
}
使用jquery时:
$.ajax({
type: "post",
下载后可阅读完整内容,剩余1页未读,立即下载
- 粉丝: 0
- 资源: 13
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展