mui.ajax与服务器(SpringMVC)传输json数据
Posted 且听风吟-wuchao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mui.ajax与服务器(SpringMVC)传输json数据相关的知识,希望对你有一定的参考价值。
跨域问题
PC端为了安全,所以禁止跨域。而我使用mui做移动web时,难免会使用pc浏览器进行调试。mui.ajax是允许跨域的。为了可以调试成功,需要对浏览器进行设置及。以360急速浏览器为例,设置如下:
即在目标后添加 --disable-web-security(前面有空格)
前端设置
<script type="text/javascript" charset="UTF-8"> regInfo = {name:\'wuchao\',password:\'000111\'}; mui.ajax(\'http://localhost:8080/share/mobile/regist.do\',{ data:JSON.stringify(regInfo), dataType:\'json\',//服务器返回json格式数据 contentType: "application/json", type:\'post\',//HTTP请求类型 timeout:10000,//超时时间设置为10秒; headers:{\'Content-Type\':\'application/json\'}, success:function(data){ //服务器返回响应,根据响应结果,分析是否登录成功; alert(data.result); }, error:function(xhr,type,errorThrown){ //异常处理; alert("error"); }, headers: { \'Access-Control-Allow-Headers\':\'X-Requested-With\' } }); </script>
后端设置
需要三个jar包,jackson-annotations-2.7.0.jar jackson-core-2.7.0.jar jackson-databind-2.4.5.jar(版本都选为2.4.5应该是可以得,但databind包选为2.7.0会报错)下载地址请点击这里。
控制器如下:
实体类接收
@RequestMapping(value = "/mobile/regist",method=RequestMethod.POST,produces = "application/json;charset=UTF-8") public @ResponseBody ModelAndView handle4Mobile(@RequestBody Info info){ System.out.println(info.getName()); Map<String, String> map = new HashMap<String, String>(); map.put("result", "sucess"); return new ModelAndView(new MappingJackson2JsonView(),map); }
其中Info类对应前端传入的json数据。返回的数据对应前端success的回调函数的data参数。
JSON对象接收
@RequestMapping(value = "/mobile/regist",method=RequestMethod.POST,produces = "application/json;charset=UTF-8") public @ResponseBody ModelAndView handle4Mobile(@RequestBody JSONObject jsondata){ System.out.println(info.getName()); Map<String, String> map = new HashMap<String, String>(); map.put("result", "sucess"); return new ModelAndView(new MappingJackson2JsonView(),map); }
使用JSONObject对象接收前台传来的json数据,spring mvc会自动将前台的字符串转换成json对象。
以上是关于mui.ajax与服务器(SpringMVC)传输json数据的主要内容,如果未能解决你的问题,请参考以下文章
mui.ajax()和asp.net sql服务器数据交互最终版