ajax – Spring MVC Zepto POST中的“Access-Control-Allow-Orig
发布时间:2020-12-16 03:07:20 所属栏目:百科 来源:网络整理
导读:我正在尝试将JSON对象POST到我的Spring MVC控制器,但我只收到Access-Control-Allow-Origin错误. 我的控制器: @RequestMapping(value= "/add",method = RequestMethod.POST,headers = {"content-type=application/json"})public @ResponseBody Reponse addUs
我正在尝试将JSON对象POST到我的Spring MVC控制器,但我只收到Access-Control-Allow-Origin错误.
我的控制器: @RequestMapping(value= "/add",method = RequestMethod.POST,headers = {"content-type=application/json"}) public @ResponseBody Reponse addUser(Model model,@RequestBody @Valid @ModelAttribute("user") User user,BindingResult result) { if (result.hasErrors()) { Reponse error = new Reponse(); // etc...... return error; } else { return service.addUser(user); } } 我的Zepto POST: this.addUser = function (valeur,callback) { $.ajax({ type: 'POST',url: 'http://127.0.0.1:8080/AgenceVoyage/user/add',data: JSON.stringify({"mail" : "toto@toto.fr","password" : "titi"}),dataType: "json",contentType: "application/json",success: function(data) { if(data.reponse == "OK") { window.location = "main.html"; } else { alert("PROBLEM"); } },error: function(xhr,type) { alert("ERROR"); } }); }; 我尝试在POST请求中没有stringify,在@RequestMapping中没有标题. 我的结果:
我找到了解决方案:
首先,创建一个新的过滤器,它将设置标头响应: @Component public class SimpleCORSFilter implements Filter { public void doFilter(ServletRequest req,ServletResponse res,FilterChain chain) throws IOException,ServletException { HttpServletResponse response = (HttpServletResponse) res; response.setHeader("Access-Control-Allow-Origin","*"); response.setHeader("Access-Control-Allow-Methods","POST,GET,OPTIONS,DELETE"); response.setHeader("Access-Control-Max-Age","3600"); response.setHeader("Access-Control-Allow-Headers","x-requested-with"); chain.doFilter(req,res); } public void init(FilterConfig filterConfig) {} public void destroy() {} } 之后,在您的web.xml中添加以下行: <filter> <filter-name>cors</filter-name> <filter-class>MY.PACKAGE.SimpleCORSFilter</filter-class> </filter> <filter-mapping> <filter-name>cors</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 那就是全部! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |