spring-boot前后端利用jquery进行ajax通信(以json为媒介)
来源:互联网 发布:魔兽世界数据恢复 编辑:程序博客网 时间:2024/05/21 13:59
初学ajax,据说不难,结果直接踩了个大坑。我在引入jquery的同时引入了json.js,在使用别的功能的时候没问题,结果在ajax上出问题了。请求无法发到后台,直接在前台报错
在网上查也没有找到类似的情况,气的不行折腾了半天发现是jquery的js文件和json.js冲突了之后进入正题,开始研究如何进行ajax通信。
首先创建了一个实体类User
public class User
{
private String id;
private String name;
private String password;
{
private String id;
private String name;
private String password;
//getter和setter方法省略
}
前台方面:
$.ajax({
type:"post",//这里使用post方式,经测试不能直接改成get,get怎么办之后再研究
url:"/test/ajax",//设置要访问的url,既可以使用/开头的形式,表示根目录,也可以用完整的http://localhost:8080/test/ajax这样的形式,开头不加/也是可以的 ,不过这样就是在当前url的基础上直接追加来进行访问,也就是相对路径
contentType:"application/json;charset=utf-8",//这里很重要,不能省略,因为默认的类型是application/x-www-form-urlencoded,如果不设置的话后台就无法使用@RequestBody正常接收
data:'{"id":"1","name":"asd","password":"abc"}',//这里有一点尤其要注意,在网上查到的资料有的是{"key":"value"}这种形式的,大括号两端没有引号,经过测试,这样是不行的,必须整个加上引号
dataType:"json",//这里声明收到的服务器的响应数据类型,如果是json的话,不声明也可以正常使用
success:function(data) {
//响应成功后回调的函数,data是来自服务器的数据
alert("收到响应")
$("#p").html(JSON.stringify(data));//这里将json转为字符串显示(data其实是个object,不转换的话会显示为一片空白)
} ,
error:function()
{
alert("收到响应")
$("#p").html(JSON.stringify(data));//这里将json转为字符串显示(data其实是个object,不转换的话会显示为一片空白)
} ,
error:function()
{
//出错时回调该函数
alert("error");
}
alert("error");
}
});
后台方面:
@RestController
@RequestMapping("/test")
public class TestController
@RequestMapping("/test")
public class TestController
{
@RequestMapping(value="/ajax",method=RequestMethod.POST)
@ResponseBody//这个注释在控制器为RestController的情况下加不加都一样,但是如果控制器是Controller类型就必须要加了,它可以把返回的对象直接解析为json对象返回客户端(强!)
private User ajax(@RequestBody User user1)//@RequestBody是作用于参数的,它实现了把客户端传过来的json数据解析为对象,作为参数传进来,不过客户端传过来的数据类型必须是application/json,不然会出错,这也是为什么客户端一定要设置ajax的contentType属性为"application/json"的原因
{
System.out.println("收到ajax请求");
System.out.println(user1.getName());
User user = new User();
user.setId("1");
user.setName("测试用户名");
user.setPassword("测试密码");
return user;
}
@ResponseBody//这个注释在控制器为RestController的情况下加不加都一样,但是如果控制器是Controller类型就必须要加了,它可以把返回的对象直接解析为json对象返回客户端(强!)
private User ajax(@RequestBody User user1)//@RequestBody是作用于参数的,它实现了把客户端传过来的json数据解析为对象,作为参数传进来,不过客户端传过来的数据类型必须是application/json,不然会出错,这也是为什么客户端一定要设置ajax的contentType属性为"application/json"的原因
{
System.out.println("收到ajax请求");
System.out.println(user1.getName());
User user = new User();
user.setId("1");
user.setName("测试用户名");
user.setPassword("测试密码");
return user;
}
}
经过测试以上代码可以实现简单的ajax前后端收发数据,截图如下:
阅读全文
1 0
- spring-boot前后端利用jquery进行ajax通信(以json为媒介)
- 利用Ajax&Json进行简单的网页前后端交互
- jQuery Ajax前后端使用JSON进行交互
- spring boot 前后端分离,解决ajax跨域问题
- Ajax+struts2+json进行对象list前后端传递
- jquery ajax 前后端通信传值(select 级联
- Spring JQuery/Ajax 进行 Json请求
- java ajax json 前后端数据传输
- jquery js json前后端交互
- Flask学习总结笔记(12) -- 利用ajax进行前后端数据交互
- Jquery ajax的常用方法 前后端
- jquery ajax flask 前后端通讯
- 使用json进行ajax通信(django/jquery)
- spring ajax前后端传递复杂参数
- 分享《Spring Boot技术栈博客企业级前后端》视频
- Json格式前后端传输的ajax实例
- json前后端传输(ajax异步提交)
- SSM框架下使用JSON进行前后端数据传输
- 作为一名程序猿的心得day2
- SHU-“盛大游戏杯”第15届上海大学程序设计联赛夏季赛暨上海高校金马五校赛-A~K && M
- string传统/现代写法
- 2017.7.14 学习记录 JavaScript 输入框的事件及获取属性值
- TF-slim学习
- spring-boot前后端利用jquery进行ajax通信(以json为媒介)
- 大酒神
- jupyter notebook 学习
- 基于docker 安装tensorflow过程总结
- 51Nod-1513-树上的回文
- express入门(1)
- 【算法】排序算法第三讲:交换排序
- Android MVC,MVP架构模式的简单理解
- 10015---Linux IO模式及 select、poll、epoll详解