当前位置: 首页 > news >正文

Springboot设置接口允许跨域

!!!前排提醒 ,如果nginx 设置了跨域相关配置,代码就不用设置了!!!

 No 'Access-Control-Allow-Origin' header is present on the requested resource.

跨域问题解决方案:

 

CORSInterceptor.java:

import org.springframework.stereotype.Component;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * @Author : JCccc
 * @CreateTime : 2019/11/13
 * @Description : 跨域设置拦截器
 **/
@Component
public class CORSInterceptor extends HandlerInterceptorAdapter {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        //添加跨域CORS
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Headers", "X-Requested-With,content-type,token");
        response.setHeader("Access-Control-Allow-Methods", "GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH");
        response.setHeader("Access-Control-Max-Age", "3600");

        return true;
    }
}

 WebConfigurer.java:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @Author : JCccc
 * @CreateTime : 2019/10/25
 * @Description : 拦截器配置总部
 *   普及:Tomcat(Filter->Servlet->Interceptor->Controller)
 **/
@Configuration
public class WebConfigurer implements WebMvcConfigurer {

    @Autowired
    private CORSInterceptor corsInterceptor;


    // 这个方法是用来配置静态资源的,比如html,js,css,等等
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {


    }

    // 这个方法用来注册拦截器,我们自己写好的拦截器需要通过这里添加注册才能生效
    @Override
    public void addInterceptors(InterceptorRegistry registry) {

         registry.addInterceptor(corsInterceptor);

    }


    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedHeaders("*")
                .allowedMethods("GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH")
                .allowCredentials(true)
                .maxAge(3600)
                .allowedOrigins("*");
    }



}

解决。

相关文章:

  • Springboot 指定获取出 yml文件里面的配置值
  • tomcat Note: further occurrences of HTTP header parsing errors will be logged at DEBUG
  • Springboot 使用自定义注解结合AOP方式校验接口参数
  • Java 看一眼equals吧,都用这么久了
  • MySql 报错 表被锁 处理
  • Springboot Filter 多过滤器的使用
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • JAVA jdk1.8 HashMap 存值流程图解
  • Java String 为什么不可变? 真的吗?
  • JAVA 将日期字符串 月份不足10月进行补0操作
  • Springboot Quartz定时任务的动态调度使用,实战详解
  • Springboot 跟着我了解下 事务 @Transactional 默认方式 Propagation.REQUIRED
  • Springboot 全局日期格式化,只需要几行小代码
  • springboot 上传文件设置文件大小限制
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • 时间复杂度分析经典问题——最大子序列和
  • 30天自制操作系统-2
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • React-Native - 收藏集 - 掘金
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • 技术发展面试
  • 简析gRPC client 连接管理
  • 解决iview多表头动态更改列元素发生的错误
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 正则与JS中的正则
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • #控制台大学课堂点名问题_课堂随机点名
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • (09)Hive——CTE 公共表达式
  • (LeetCode) T14. Longest Common Prefix
  • (rabbitmq的高级特性)消息可靠性
  • (二)Linux——Linux常用指令
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (转)可以带来幸福的一本书
  • .NET Core 版本不支持的问题
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .NET HttpWebRequest、WebClient、HttpClient
  • /dev下添加设备节点的方法步骤(通过device_create)
  • @autowired注解作用_Spring Boot进阶教程——注解大全(建议收藏!)
  • @RequestParam,@RequestBody和@PathVariable 区别
  • [Angular] 笔记 18:Angular Router
  • [boost]使用boost::function和boost::bind产生的down机一例
  • [BSGS算法]纯水斐波那契数列
  • [BZOJ 3680]吊打XXX(模拟退火)
  • [BZOJ2850]巧克力王国