Spring RestController的跨域ajax请求问题

编程入门 行业动态 更新时间:2024-10-28 10:27:58
本文介绍了Spring RestController的跨域ajax请求问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正面临ajax跨域请求的问题.

I am facing issue with cross domain request with ajax.

以下是我的弹簧控制器的代码:

Following is my spring controller's code:

@RestController @RequestMapping(value = "/help") public class MYController { @Autowired private MyService myService; private static final int SUCCESS = 1; private static final int FAIL = 0; @RequestMapping(value = "save", method = RequestMethod.POST,produces={"application/json"}) public int save(@RequestBody Item item,HttpServletRequest request,HttpServletResponse response) { response.addHeader("Access-Control-Allow-Origin","*"); response.addHeader("Access-Control-Allow-Methods","GET, PUT, POST, DELETE, OPTIONS"); response.addHeader("Access-Control-Allow-Headers","Content-Type, Content-Range, Content-Disposition, Content-Description"); try { myService.save(item); return SUCCESS; } catch (Exception ex) { ex.printStackTrace(); return FAIL; } } }

以上代码是我的REST服务的一部分,它正在其他Tomcat上运行.

above code is a part of my rest service and it is running on other tomcat.

以下是我的脚本代码,这是我的客户端代码.

Following is my script code , which is my client code.

$.ajax({ type: "POST", url:"10.10.13.215:9092/helpProject/help/save", crossDomain: true, dataType: "JSON", data:JSON.stringify(item), //item is my pojo here headers : {Accept : "applicationjson","Access-Control-Allow-Origin" : "*"}, success: function(msg) { alert(msg); }, error: function (e) { alert("errorrrrrr"); } });

我在浏览器控制台中遇到以下错误:

I am getting following error in browser's console:

XMLHttpRequest cannot load 10.10.13.215:9092/helpProject/help/save", No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'localhost:8082' is therefore not allowed access.

请帮助解决..谢谢

推荐答案

尝试添加此过滤器.

@Component public class CorsFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { // TODO Auto-generated method stub } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletResponse res = (HttpServletResponse) response; res.setHeader("Access-Control-Allow-Origin", "*"); res.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); res.setHeader("Access-Control-Max-Age", "3600"); res.setHeader("Access-Control-Allow-Headers", "x-requested-with"); chain.doFilter(request, res); } @Override public void destroy() { // TODO Auto-generated method stub } }

更多推荐

Spring RestController的跨域ajax请求问题

本文发布于:2023-10-11 23:55:12,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1483200.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Spring   RestController   ajax

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!