zoukankan      html  css  js  c++  java
  • java中常用的几种跨域方式

    默认情况下服务端是不允许ajax跨域访问的,需要在response头设置相应的跨域权限

    在后台,常用的配置跨域有两种方式

    1、配置Filter过滤器(拦截器也可以):

    @WebFilter("/test")
    public class CorsFilter implements Filter {
    
        @Override
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
            HttpServletResponse response = (HttpServletResponse)servletResponse;
            //设置允许跨域访问的服务域名,*号表示允许所有域访问
            //resp.setHeader("Access-Control-Allow-Origin", "www.baidu.com");
            response.setHeader("Access-Control-Allow-Origin", "*");
            //设置允许跨域的请求方法
            response.setHeader("Access-Control-Allow-Methods", "GET,POST,PUT,DELETE");
            //放行
            filterChain.doFilter(servletRequest, servletResponse);
        }
    }

    2、使用@CorsOrigin()注解:

    @CorsOrigin()注解可以标注在类上,也可以标注在方法上。在controller类中,在类上标注@CorsOrigin注解表示当前类下的所有方法都支持跨域访问,如果标注在方法上,表示只有当前方法支持跨域访问。这个注解有origins和methods两个属性,origins属性表示允许跨域访问的服务域名,*号表示所有域名都支持,methods是一个RequestMethod对象数组,表示允许跨域的请求方法。

    @RestController
    @CrossOrigin(origins = "*", methods = {RequestMethod.GET, RequestMethod.POST})
    public class TestController {
    
        @GetMapping("/hello")
        public String hello(){
            return "hello spring";
        }
    }
  • 相关阅读:
    hdu 4710 Balls Rearrangement()
    hdu 4707 Pet(DFS水过)
    hdu 4706 Children's Day(模拟)
    hdu 4712 Hamming Distance(随机函数暴力)
    csu 1305 Substring (后缀数组)
    csu 1306 Manor(优先队列)
    csu 1312 榜单(模拟题)
    csu 1303 Decimal (数论题)
    网络爬虫
    Python处理微信利器——itchat
  • 原文地址:https://www.cnblogs.com/zhangcaihua/p/12968344.html
Copyright © 2011-2022 走看看