在通过ajax从页面向后台传数据的时候,总是返回415(Unsupported media type)错误,后台无法获取数据。如下图所示:

JAVA后端组织JSON字符串 后端接收json字符串_ajax传给后台json数据

在尝试解决这个问题的时候,我们首先要理解一下概念:

@requestmapping @ requestbody 和@responsebody的用法,这个有很多博客可以参考。

json对象和json字符串的区别。

person ={"name":"nadech"} //这个是json对象
person="{"name":"nadec"}"//这个是json字符串

两者可以通过json.parse()和json.stringify()转换。

如图,首先我们要保证传输的Content-type:application/json charst="utf-8

传输的json字符串如图中第二个箭头指出的形式,而不是一堆字母。

通过在ajax中指定content-type和对data进行JSON.stringify()可以实现,然后检查如上图的header,看看是否正确。

JAVA后端组织JSON字符串 后端接收json字符串_JAVA后端组织JSON字符串_02

二、不存在以上错误,考虑jackson和spring mvc的版本兼容问题以及springmvc的配置。

JAVA后端组织JSON字符串 后端接收json字符串_下拉列表_03

其中,在配置方面,如下图

JAVA后端组织JSON字符串 后端接收json字符串_JAVA后端组织JSON字符串_04

要注意红色箭头指出的代码这句代码一般情况是直接跟在上面那句扫描controller包后面的。从字面理解的意思就是mvc的注解驱动。

总结:

需要考虑传输的json格式以及jackson的版本和配置问题。

jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表

对于问题从后台获取json数据,将内容填充到下拉列表,代码非常简单,具体过程请看下面代码. 需求:url:链接     par:ID       sel:下拉列表选择器 function BuildS ...

jquery用ajax方式从后台获取json数据,将内容填充到下拉列表。

从后台获取json数据,将内容填充到下拉列表. url:链接 par:ID sel:下拉列表选择器 //获取下拉列表 function BuildSelectBox(url, par, sel) { ...

mui.ajax与服务器(SpringMVC)传输json数据

跨域问题 PC端为了安全,所以禁止跨域.而我使用mui做移动web时,难免会使用pc浏览器进行调试.mui.ajax是允许跨域的.为了可以调试成功,需要对浏览器进行设置及.以360急速浏览器为例,设置 ...

Jquery Ajax和getJSON获取后台普通Json数据和层级Json数据解析

ppli ...

ajax请求传过来的json数据直接转成对应的实体类时出错:400 Bad Request 不进入controller

今天开发过程中,在SpringMVC中的Action中处理前台ajax请求传过来的json数据直接转成对应的实体类时出错:400 Bad Request,后台也不报错,400指的的是请求无效(请求有语 ...

asp.net core 如何在Controller获取配置文件的值

场景:我们会把一些配置信息,写在配置文件文件中,便于我们修改和配置.在之前的asp.net 中可以通过ConfigurationManger来获取web.config里面的配置.在.net core ...

那些过目不忘的H5页面

从引爆朋友圈的H5小游戏,到颠覆传统广告的大众点评H5专题页& ...

阅读Python官方文档心得

我会每天都阅读一些python的官方文档,并每天更新心得体会. -------------------------------------------------2016.12.08--------- ...

Asp.net发布的CheckList

Asp.net Web 应用程序正式发布前,我们还是做一些检查,所以需要这个CheckList,如下图今天的Asp.net 已演化这样的了:   但不管是什么组件,目前的Web最终还得通过H ...

Linux C 程序 函数,数组,指针,gdb调试器(SEVEN)

函数,数组,指针,gdb调试器 1.函数定义 如果明确指定返回类型,默认为int 参数传递:实参对形参的参数传递是单向的,实参只是把自己的值赋给形参.                      形参的 ...

UIView和其子类的几个初始化函数执行的时机

-(id)initWithFrame:(CGRect)frame - UIView的指定初始化方法; 总是发送给UIView去初始化, 除非是从一个nib文件中加载的; -(id)initWithCo ...

c printf()详解[]

Web测试与APP测试有哪些异同?

1.相同点 不管是传统行业的web测试,还是新兴的手机APP测试,都离不开测试的基础知识,即是不管怎么变,测试的原理依然会融入在这两者当中. 1)设计测试用例时,依然都是依据边界值分析法.等价类划分等 ...

Servlet和Filter生命周期

1. 生命周期 1.1. Servlet生命周期 servlet是一个基于java技术的WEB组件,运行在服务器端,我们利用 sevlet可以很轻松的扩展WEB服务器的功能,使它满足特定的应用需要.s ...

在 Ubuntu14.04 上搭建 Spark 2.3.1(latest version)

搭建最新的 Spark 2.3.1 . 首先需要下载最新版 jdk .目前 2.3.1 需要 8.0 及其以上 jdk 才可以允许. 所以如果你没有 8.0  jdk 安装好了之后会报错.不要尝试安装 ...