ajax 404错误
记录下今天遇见的一个问题,一个删除的ajax请求,传递一个主键到后台,后台成功接受并执行删除,但是前端报POST404错误。
查找原因是由于Controller忘记写返回状态码 @Responsebody
spring对返回值映射时找不到对应的视图,所以返回404
Spring中ajax与后端传输数据的几种方式
后台解析ajax传递的数据,这主要看前端传递数据的格式,主要有以下几种常见的。
1、前端ajax传递表单数据,类似{name:'zhangsan',age:'17'}后台只需利用request.getParameter("name")形式即可获取对应的value值。
2、前端传递json数据格式。后台可以直接获取json字符串,然后利用相关的API转成对应的Java对象。或者直接利用springMvc的注解@RequestBody注解。@RequestMapping(value = "/save")public void save(@RequestBody User user){}这样传递的json数据会自动封装成user对象。如果当前传递的是一个json数组,则后端可以定义一个VO对象,vo对象中存放一个userList。public class UserVO{private List<User> dataList;}@RequestMapping(value = "/save")public void save(@RequestBody UserVO userVO){
jqueryajax怎么设置请求头
简单的给你个例子看看 function ku2nRequest() {alert("inside makeRequest()");var settings = {type: "GET",url:URL+"?"+REQUEST,dataType:"xml",error: function(XHR,textStatus,errorThrown) {alert ("XHR="+XHR+"\ntextStatus="+textStatus+"\nerrorThrown=" + errorThrown);},//傲隆盛 success的处理aolssuccess: function(data,textStatus) {$("body").append(data);},//酷呢嗯 ku2n的设置请求头 headers: {"Access-Control-Allow-Origin":"
http://www.ku2n.com
","Access-Control-Allow-Headers":"X-Requested-With"}};$.ajax(settings);}jquery为什么要序列化
用ajax传递表单的数据,如果不进行表单的序列化,要一个参数一个参数的写,太麻烦,序列化的话,一句代码搞定。data:$('form').serialize(),这样一句话解决复杂的表单ajax的post传值过程。
提交时数据是直接以原始格式存储在body中而不是以键值对的方式附加到url中的,所以后台程序是无法直接识别的,这时候就需要在提交前先把data转换为 a=1&b=2&c=3 的格式再提交,这就是序列化。
当然,如果数据是通过表单提交的,那么不管是post方式还是get,浏览器会自动进行序列化,无需前端js再做任何处理。
还没有评论,来说两句吧...