Ajax json交互和SpringMVC中@RequestBody

标签:


背景

自己提供出去得接口中参数设置为@RequestBody VipPromotionLog vipPromotionLog为一个对象。但是前端人员得处理方式代码如下

    var data = {
"userId" : 20142100122,
"userOperationStep" : 2,
"appPlatform": "android",
"app" : 0,
"videoId":123123
}; $.ajax({
url : 'http://localhost:81/online-2c/api/vippromotion',
type : 'POST',
dateType : 'json',
data:data,
success : function(msg){
console.log(msg);
}
})

问题出现

上述情况出现如图一错误

图一
![](https://i.loli.net/2018/12/11/5c0f5111df916.png)

排查

查看这从请求得类型如图二

图二
![](https://i.loli.net/2018/12/11/5c0f5121e26b9.png)

content-Type为application/x-www-form-urlencoded

而且传输过去的类型是一个对象,那么我们设置的@RequestBody需要的是什么,难道不是一个对象。这里我个人的理解为@RequestBody需要传输过去的是一个字符串并且和其注释的对象的属性一一对应。

解决

办法一

有两种办法解决 第一不改变后台代码的情况下解决办法如下代码

    var data = {
"userId" : 20142100122,
"userOperationStep" : 2,
"appPlatform": "android",
"app" : 0,
"videoId":123123
}; $.ajax({
url : 'http://localhost:81/online-2c/api/vippromotion',
type : 'POST',
dateType : 'json',
contentType : 'application/json',
data:JSON.stringify(data),
success : function(msg){
console.log(msg);
}
})

application/json 传输过去的数据为json对象的字符串,data为一个对象,用JSON.stringify转换成对象字符串,其实上面代码和下面的是一样的

   var data = '{\n' +
' "userId" : 20142100122,\n' +
' "userOperationStep" : 2,\n' +
' "appPlatform": "android",\n' +
' "app" : 0,\n' +
' "videoId":123123\n' +
' }'; $.ajax({
url : 'http://localhost:81/online-2c/api/vippromotion',
type : 'POST',
dateType : 'json',
contentType : 'application/json',
data:data,
success : function(msg){
console.log(msg);
}
})

办法二

修改后台代码,去除@RequestBody注解。这样的话你传输过去的就是一个对象了,并一一对应,如果没有的话就为空。前端js代码不变。

防止

根据前后端的数据交互类型来进行选择。

最新文章

  1. 【译】更快的方式实现PHP数组去重
  2. 学习笔记:调用js文件冲突问题解决方案
  3. qt+2012+qtcreator 配置
  4. 常用按键ASCII码
  5. 【Qt】Qt Assistant介绍【转】
  6. 从头开始编写一个Orchard网上商店模块(1) - 介绍
  7. Swift lazy 修饰符和方法
  8. Installing vSphere SDK for Perl
  9. 学习笔记——建造者模式Builder
  10. python 遍历列表 list
  11. SQL 数据库语言分析总结(三)
  12. 【CodeForces 730H】Delete Them
  13. 深入浅出--UNIX多进程编程之fork()函数
  14. 欢迎来到Curl的世界
  15. 如何清空IFRAME中的HTML
  16. PAT 1110 Complete Binary Tree[判断完全二叉树]
  17. Java学习--jsp内置对象
  18. [iOS]UIDynamicAnimator动画
  19. BZOJ4916 神犇和蒟蒻(欧拉函数+杜教筛)
  20. java代码--------编写0懂啊PI之间求随机数的方法

热门文章

  1. Go_22: Golang 命令行 test 应用
  2. Mask RCNN 原理
  3. Java基础-SSM之mybatis的统计函数和分页查询
  4. Hadoop生态圈-Kafka常用命令总结
  5. Sql数据库不能频繁连接
  6. swift学习笔记3
  7. BFS简单题套路_Codevs 1215 迷宫
  8. [整理]WebAPI中应用oData
  9. 20155321 2016-2017-2 《Java程序设计》第五周学习总结
  10. shell 示例1 从1叠加到100