zoukankan      html  css  js  c++  java
  • @RequestBody ajax 415 400

    使用springmvc和Ajax进行数据交互时使用标签@RequestBody时我报了这两个错,刚开始对springmvc的使用和注解有点迷,然后踩坑上了。

      先说下怎么才会踩上去。首先@RequestBody在一个Controller的一个方法中只能用一次,所以如果你使用了两次意图在一个方法中封装两个实体,那你铁定时解决不了的.

      原因:1.request.getInputStream()在一次请求只执行一次。@RequestBody是将前台传递的对象一次性尝试封装到你使用的实体中,也就是你设置在@RequstBody后面的那个参数。如果你实在是有必要在这个方法中使用多个实体的属性的话,我建议新建一个实体Bean。将你需要的实体属性封装,然后确保你发送的Ajax数据正确的被转成json格式的字符串而不是对象然后发给controller。

           2.传递的json的 key值和你期望封装的实体名要一致,你可以少给 但一定不要多给,不要乱给。比如方法中你期望 @requestBody User  user包含 String username ,String password,Long user_id;你可以在Ajax中只发送 username 或password 或user_id

    或者任意两种,三种的组合。你不能给usernnnnnname,或者其他乱七八糟的东西,总之就是少给可以 ,多给不行,乱给也不行。

         3.如果你不确定你的Ajax是否使用正确的话,就将必要的参数设置完全如设置浏览器的content-Type  :contentType:'application/json;charset=utf-8'   另外确保没有中文格式的字符。参照

     1 function submitComment(){
     2         var comment_details=$('#comment_details').val();
     3         var forum_id=$('#forum_id').val();
     4         var dataa={
     5                 "comment_details":comment_details,
     6                 "forum_id":forum_id, 
     7         };
     8         var d=JSON.stringify(dataa);
     9         $.ajax({
    10             type:'post',
    11             url:'../comment/releaseComment',
    12             contentType:'application/json;charset=utf-8',
    13             data:d,
    14             dataType:'json',
    15             success:function(data){  
    16                 $('#comment_details').val('');
    17                 window.location.reload();
    18             }
    19         })
    20     }

    JSON.stringify是个不错的工具,但是网上貌似有老哥被坑过因为经过这个函数转换后json对象会变成json字符串

    。以上就是我纠结了挺久的@RequestBody 报错400 和415的解决办法。

  • 相关阅读:
    极简风格网络消息以及分发架构
    GPS网络时间服务器是如何让集成系统协调工作的?
    北斗授时设备(NTP时间服务器)对高速联网收费的重要性
    卫星互联网路由技术现状及展望
    【Python】获取中国法定节假日的封装
    GCC 内联汇编基础
    MIT6.828——Lab1 partB(麻省理工操作系统课程实验)
    MIT6.828——Lab1 partA(麻省理工操作系统课程实验)
    bochs(2.6.11)配置安装
    MIT6.828(Step0)——实验环境配置
  • 原文地址:https://www.cnblogs.com/notably/p/10561985.html
Copyright © 2011-2022 走看看