zoukankan      html  css  js  c++  java
  • @CrossOrigin 解决SpringBoot跨域

    @CrossOrigin使用场景要求     jdk1.8+   spring4.2+

    @Target({ ElementType.METHOD, ElementType.TYPE })
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    public @interface CrossOrigin {
    
        String[] DEFAULT_ORIGINS = { "*" };
    
        String[] DEFAULT_ALLOWED_HEADERS = { "*" };
    
        boolean DEFAULT_ALLOW_CREDENTIALS = true;
    
        long DEFAULT_MAX_AGE = 1800;
    
    
        /**
         * 同origins属性一样
         */
        @AliasFor("origins")
        String[] value() default {};
    
        /**
         * 所有支持域的集合,例如"http://baidu.com"。
         * <p>这些值都显示在请求头中的Access-Control-Allow-Origin
         * "*"代表所有域的请求都支持
         * <p>如果没有定义,所有请求的域都支持
         * @see #value
         */
        @AliasFor("value")
        String[] origins() default {};
    
        /**
         * 允许请求头重的header,默认都支持
         */
        String[] allowedHeaders() default {};
    
        /**
         * 响应头中允许访问的header,默认为空
         */
        String[] exposedHeaders() default {};
    
        /**
         * 请求支持的方法,例如"{RequestMethod.GET, RequestMethod.POST}"}。
         * 默认支持RequestMapping中设置的方法
         */
        RequestMethod[] methods() default {};
    
        /**
         * 是否允许cookie随请求发送,使用时必须指定具体的域
         */
        String allowCredentials() default "";
    
        /**
         * 预请求的结果的有效期,默认30分钟
         */
        long maxAge() default -1;
    
    }

      使用 

    @RestController
    //实现跨域注解
    //origin="*"代表所有域名都可访问
    //maxAge飞行前响应的缓存持续时间的最大年龄,简单来说就是Cookie的有效期 单位为秒
    //若maxAge是负数,则代表为临时Cookie,不会被持久化,Cookie信息保存在浏览器内存中,浏览器关闭Cookie就消失
    @CrossOrigin(origins = "*",maxAge = 3600)
    public class UserController {
        @Autowoird
        private IUserDao userDao;
    
        //@CrossOrigin(origins = "http:www.baidu.com",maxAge = 3600) 也可以写在具体方法上  处理时会进行合并
        @GetMapping("getUser")
        public User getUser(@RequestParam(value="id") Integer id){
       
        }
    }

      一定要在某类 或者某方法上 添加类似 method = RequestMethod.POST 的属性 

      在某个方法上添加@CrossOrigin 注解时 origins 属性需要写ip号 如果输入localhost有时会出现403错误

  • 相关阅读:
    VMware ESXi 和 VMware Server 有区别
    安装源与清除缓存
    pip install --upgrade pip
    Linux/Centos查看进程占用内存大小的几种方法总结
    top命令经常用来监控linux的系统状况,比如cpu、内存的使用,程序员基本都知道这个命令。 按 q 退出
    Centos 查看 CPU 核数 和 型号 和 主频
    Docker 运行ELK日志监测系统,汉化Kibana界面
    elasticsearch启动时遇到的错误
    kubernetes 创建超级管理员和密匙
    第七章 AOP(待续)
  • 原文地址:https://www.cnblogs.com/qin1993/p/12564456.html
Copyright © 2011-2022 走看看