The request sent by the client was syntactically incorrect.

ajax发起请求时报400错误。请求代码如下:

var reportId=($(obj).parent().parent().parent().children(":first").attr("value"));
var isChecked=$(obj).prop("checked")=="checked"?1:0;
var reportSetting=$(obj).attr("value");
var setting={reportId:reportId,isChecked:isChecked,reportSetting:reportSetting};
console.log(JSON.stringify(setting));
$.ajax({
type: "POST",
url: "/reportConfiguration",
contentType:"application/json",
data:JSON.stringify(setting),
dataType: "json",
success: function (msg) {
if (msg.isSuccess){
$("#msg").html("设置成功")
}else{
$("#msg").html(msg.result);
}
}
});

服务端代码:

@RequestMapping("/reportConfiguration")
@ResponseBody
public String reportSet(@RequestBody ReportSettingEditBean reportSettingEditBean,HttpServletRequest request){
return "";
}

bean定义:

public class ReportSettingEditBean {
private long reportId; private boolean isChecked; private ReportSetting reportSetting; public long getReportId() {
return reportId;
} public void setReportId(long reportId) {
this.reportId = reportId;
} public boolean isChecked() {
return isChecked;
} public void setChecked(boolean isChecked) {
this.isChecked = isChecked;
} public ReportSetting getReportSetting() {
return reportSetting;
} public void setReportSetting(ReportSetting reportSetting) {
this.reportSetting = reportSetting;
}
} public enum ReportSetting {
Fixed(1),
Scroll(2),
First(4); private int value; public int getValue() {
return value;
} ReportSetting(int value){
this.value=value;
}
}

解决:

在js中核对数据类型与接收数据类中属性的数据类型是否一致。

上例中:ReportSetting 是枚举对象, 而var reportSetting=$(obj).attr("value") 是字符串。修改成整数即可。正确请求如下:

var reportId=($(obj).parent().parent().parent().children(":first").attr("value"));
var isChecked=$(obj).prop("checked")=="checked"?1:0;
var reportSetting=parseInt($(obj).attr("value"));
var setting={reportId:reportId,isChecked:isChecked,reportSetting:reportSetting};
$.ajax({
type: "POST",
url: "/reportConfiguration",
contentType:"application/json",
data:JSON.stringify(setting),
dataType: "json",
success: function (msg) {
if (msg.isSuccess){
$("#msg").html("设置成功")
}else{
$("#msg").html(msg.result);
}
}
});

spring mvc ajax 400解决的更多相关文章

  1. Spring Mvc Http 400 Bad Request问题排查

    如果遇到了Spring MVC报错400,而且没有返回任何信息的情况下该如何排查问题? 问题描述 一直都没毛病的接口,今天测试的时候突然报错400 Bad Request,而且Response没有返回 ...

  2. spring mvc ajax 提交复杂数组类型

    The server refused this request because the request entity is in a format not supported by the reque ...

  3. spring boot 1.x完整学习指南(含各种常见问题servlet、web.xml、maven打包,spring mvc差别及解决方法)

    spring boot 入门 关于版本的选择,spring boot 2.0开始依赖于 Spring Framework 5.1.0,而spring 5.x和之前的版本差距比较大,而且应该来说还没有广 ...

  4. spring mvc ajax异步文件的上传和普通文件上传

    表单提交方式文件上传和ajax异步文件上传 一:首先是我在spring mvc下的表单提交方式上传 ssm的包配置我就不一一详细列出来了,但是上传的包我还是列出来 这一段我也不知道怎么给大家讲解就是直 ...

  5. 【Spring学习笔记-MVC-16】Spring MVC之重定向-解决中文乱码

    概述 spring MVC框架controller间跳转,需重定向,主要有如下三种: 不带参数跳转:形如:http://localhost:8080/SpringMVCTest/test/myRedi ...

  6. Spring MVC+ajax进行信息验证

    本文是一个ajax结合Spring MVC使用的入门,首先我们来了解一下什么是Ajax AJAX 不是新的编程语言,而是一种使用现有标准的新方法.AJAX 最大的优点是在不重新加载整个页面的情况下,可 ...

  7. spring mvc ajax请求

    jar包中增加 jackson-annotations-2.5.0.jar jackson-core-2.5.0.jar jackson-databind-2.5.0.jar springmvx.xm ...

  8. Spring MVC ajax:post/get 的具体实现

    Post 方式 1.自动注入 a. pom.xml ---- 配置Maven,添加必要的jar包 <!--用于 String-JSONObject 转换 --> <dependenc ...

  9. Spring MVC Ajax 复杂参数的批量传递

    要解决的问题: 如何组织客户端参数? Ajax 方法的配置属性如何定义才能传递复杂参数? 基于 SpringMVC 的服务端该如何接收? MyBatis 怎么处理批量更新? 客户端脚本 viewMes ...

随机推荐

  1. 获取Spring容器中的Bean

    摘要 SpringMVC框架开发中可能会在Filter或Servlet中用到spring容器中注册的java bean 对象,获得容器中的java bean对象有如下方法 Spring中的Applic ...

  2. 【软件工程】电梯调度的初步实现 李亚文&&郭莉莉

    一.开门见山,代码粘 using System; using System.Collections.Generic; using System.Data; using System.Drawing; ...

  3. sql 查询分组后的数据总条数

    select count(0) from (select investor_uid from lzh_borrow_investor group by investor_uid) as temp

  4. git init 和 git init --bare 的区别

    http://blog.csdn.net/ljchlx/article/details/21805231 概念  裸仓储 :不可以在上面做git操作    the operation must be ...

  5. 安全关闭多Activity的Application

    1.发送广播给每一个打开的Activity. 2.采用startActivityForResult()方法递归关闭. 3.使用EventBus框架的监听者模式,关闭时触发监听事件.

  6. iis设置Gzip后,无后缀的url无法压缩解决 MVC iis GZIP

    <IIsCompressionScheme    Location ="/LM/W3SVC/Filters/Compression/gzip"        HcCompre ...

  7. 在windows环境下基于sublime text3的node.js开发环境搭建

    首先安装sublime text3,百度一堆,自己找吧.理论上sublime text2应该也可以.我只能说一句:这个软件实在是太强悍了. 跨平台,丰富的插件体系,加上插件基本上就是一个强悍的ide了 ...

  8. margin设置为百分比的含义

    <!DOCTYPE html> <html> <head> <title>magin为百分比</title> </head> & ...

  9. ObjC.class-cluster

    class cluster In a class cluster, only an abstract superclass is public. Allocating an instance actu ...

  10. StringGrid 实例2:1、获取 StringGrid 的行数、列数; 2、给单元赋值.

    实例2: 本例功能: 1.获取 StringGrid 的行数.列数; 2.给单元赋值. 运行效果图: