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. c#中获取数组的行列个数的方法

    GetUpperBound可以获取数组的最高下标.GetLowerBound可以获取数组的最低下标.这样就可以实现对数组的遍历//定义二维数组string[,] myStrArr2=new strin ...

  2. java与微信企业号交互

    微信企业号接收消息(使用SpringMVC): http://blog.csdn.net/omsvip/article/details/39480577 微信企业号api: http://qydev. ...

  3. scala 学习心得

    scala 安装步骤 文件下载地址:www.scala-lang.org(Please report bugs at https://issues.scala-lang.org/. We welcom ...

  4. 分布式HBase-0.98.4环境搭建

    fesh个人实践,欢迎经验交流!Blog地址:http://www.cnblogs.com/fesh/p/3804072.html 本文有点简单,详细版本请参见<分布式Hbase-0.98.4在 ...

  5. perl中的运算符

    字符计算的运算符

  6. perl 入门的基础

    perldoc是在搜索手册中查找你要寻找的函数 例如(查找print函数):perldoc -tf print

  7. [转载] Android逃逸技术汇编

    本文转载自: http://blogs.360.cn/360mobile/2016/10/24/android_escape/ 摘    要 传统逃逸技术涉及网络攻防和病毒分析两大领域,网络攻防领域涉 ...

  8. 问题: ActivityManager: Warning: Activity not started, its current task has been brought to the front

    运行程序时看控制台有这样的错误,应用程序没跑起来. 解决办法:project-->Clean

  9. golang--gopher北京大会(2)(rework)

    三.七牛老许 qlang: github qiniu/qlang microservice architecture: http://martinfowler.com/articles/microse ...

  10. delphi日期格式化免操作系统依赖单元

    delphi免操作系统依赖单元 经常在windows里面,我们需要yyyy-mm-dd格式日期,可是用户却没有设置成这个 格式,而用程序去修改用户的日期格式设置,是不明智的,将影响其他程序的运行. 本 ...