springmvc前台接受ajax请求时无法自动获取参数

使用mvc时遇到如下问题
按照帮助修改前台请求后:

clipboard.png

后台接收改成:
clipboard.png
可以接收到请求参数

改成
clipboard.png
报错The request sent by the client was syntactically incorrect.

请求

clipboard.png

换用tomcat7解决 使用的是spring4.3.1版本

阅读 3.7k
4 个回答

使用 JSON.stringify 的问题,去掉就好了
你 dat 对象是一个 js 对象,使用 JSON.stringify 后会将他转换为 JSON 字符串,导致 Spring MVC 无法对参数进行解析,除非你选择使用一个对象接收,改成以下代码就行

$.ajax({
    type: "post",
    url: "",
    dataType: "json",
    data: dat,
    success: function (data) {
        // ...
    }
})
新手上路,请多包涵

参数加@RequestParam("message") String message,
或者直接参数(HttpServletRequest request)
然后用 String message = request.getParameter("message");获取

参数前面打上对应的注解,@Param,名字和你ajax里的一样

哦,你是一个json串啊

那你改成 @RequestBody 然后后面改成一个类,类里面有一个参数 String
message ,对应的getset方法 设置好

我之前好像遇到过

或者你还是用 原来的方式,把ajax的方式 改成get ,你都试一下

试一下我的这两个方法

你这个错误是请求的语法错误了,如果你传去前台的数据是在表单内,那你那个dat变量就没必要了,直接提交表单就好

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题