Spring MVC Json 405 (Method Not Allowed)/ 404 Bad Request
2016-07-22 15:36
741 查看
在spring mvc 框架下利用Ajax向后台发送Json格式数据,出现了404、405问题。
原因如下:
出现404,是因为Ajax的type设成了“GET”,但是@RequestBody注解不支持GET,只支持POST.出现405,是因为框架添加了spring security, 凡是post方法都需要token验证。
具体配置如下:
ajax:
<script type="text/javascript"> var value=[]; $(document).ready(function() { var token = $('#csrfToken').val(); var header = $('#csrfHeader').val(); var saveDataAry=[]; var data1={username:"test",email:"gz"}; var data2={username:"ququ",email:"gr"}; saveDataAry.push(data1); saveDataAry.push(data2); $("#click").click(function(){ var link=$("#urlpath").val(); $.ajax( { url:link, type:"POST", dataType:"json", contentType:"application/json", data:JSON.stringify(saveDataAry), beforeSend: function(xhr) { xhr.setRequestHeader("Accept", "application/json"); xhr.setRequestHeader("Content-Type", "application/json"); xhr.setRequestHeader(header, token); } }); }); }); </script>
<body> <input type="hidden" id="csrfToken" value="${_csrf.token}"/> <input type="hidden" id="csrfHeader" value="${_csrf.headerName}"/> <input type="hidden" id="urlpath" value=<c:url value="/auth/json"/>> </div> <button id="click">Click</button> </body>
Controller
@RequestMapping(value="/auth/json",method=RequestMethod.POST,consumes="application/json") public @ResponseBody String getShopInJSON(@RequestBody List<TestUser>user) { System.out.println(user.get(0).getEmail()); return ""; }
TestUser
package com.user; public class TestUser { private String username; private String email; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } }
相关文章推荐
- java.util.ConcurrentModificationException原因及解决方法
- 深入Spring IOC源码之ResourceLoader
- 使用BeanNameAutoProxyCreator实现spring的自动代理
- spring 后置处理器BeanFactoryPostProcessor和BeanPostProcessor的用法和区别
- Spring中配置和读取多个Properties文件--转
- Java 递归求斐波那契数,输入n,查询第n个数
- Spring BeanNameAutoProxyCreator 与 ProxyFactoryBean区别
- Struts2中json的使用总结
- Java 自动装箱与拆箱(Autoboxing and unboxing)
- SpringMVC(五)DispatcherServlet的逻辑处理
- Java基本语法-----java函数
- Java基本语法-----java函数
- 数据访问层的性能优化
- strman-java(java字符串工具库)
- Java反转单链表
- spring roo 开发meavn项目(三)分页读取数据示例
- java学习之UDP
- 使用SAX解析将xml的文件内容结构保存到java对象中
- java BigDecimal详解(转载)
- java学习之socket