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";
        }
    }
  • 相关阅读:
    请求的详细资料级别没有事实表
    BIEE汇总数据如何放在后面
    Biee仪表盘中提示空值如何去掉
    UFT测试本地应用程序登陆小实例(描述性编程)
    Mysql找回丢失密码
    linux下Mysql多实例实现
    如何从零安装Mysql
    Linux系统下yum源配置(Centos 6)
    Linux系统管理常用命令用法总结(2)
    Linux系统管理常用命令用法总结(1)
  • 原文地址:https://www.cnblogs.com/zhangcaihua/p/12968344.html
Copyright © 2011-2022 走看看