您现在的位置是:首页 > 正文

Spring Boot全局支持CORS(跨源请求)的配置方法

2024-04-01 01:19:44阅读 1

http://blog.csdn.net/zhangchao19890805/article/details/53893735

开发的时候,后端应用了 RESTful 风格的开发方式。同时使用了前后端完全分离的架构设计。这样的话就会碰到浏览器需要处理ajax请求跨源资源的问题。因为需要所有 Web API 都需要支持跨源资源共享(CORS),所以需要进行全局设置。 
spring Boot 可以全局配置 CORS。这样就不用每个Controller都进行配置了。为了更好地说明,我给出了一个简单的项目。这个项目由Maven构建。

我做了一个例子来演示配置。你可以下载我上传的项目来学习一下配置。点击这里下载资源

后端Java在blog2这个文件夹里。bog2是一个Maven构建的项目。为了演示跨域调用WEB API。我在资源里面加入了testFrontEnd这个前端小项目进行演示。下面讲一下重点配置:

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>zhangchao</groupId>
    <artifactId>blog2</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.2.RELEASE</version>
        <relativePath/>
    </parent>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>       
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>
   
   
     
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

配置文件Blog2MvcConfig:

package zhangchao.blog2;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

@Configuration
public class Blog2MvcConfig extends WebMvcConfigurerAdapter {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**").allowedOrigins("*")
                .allowedMethods("GET", "HEAD", "POST","PUT", "DELETE", "OPTIONS")
                .allowCredentials(false).maxAge(3600);
    }
}

   
   
     
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

其余部分建议读者自行下载资源阅读代码。


网站文章

  • input 与 inline 标签水平不对齐的解决办法

    input 与 inline 标签水平不对齐的解决办法

    今天做一个网页,input 与 a 高度一致却遇到了平时认为理所当然水平对齐的事情,居然做不到了。。。。细心的小伙伴发现了吗?input 与 变成行级块元素的a标签竟然出现了水平不对齐,于是找度娘问问...

    2024-04-01 01:19:34
  • excel表数据挂接到arcgis中

    excel表数据挂接到arcgis中

    不需要在arcmap中新增字段,直接挂接即可 不需要编辑图层 要导入的excel表: 右键选中操作图层 点击连接和关联选择连接: 最终导入:

    2024-04-01 01:19:04
  • 数组左移一位,右移一位,左移k位,右移k位

    void Print_Array(int *br,const int n) //输出打印数组 { for(int i=0;i0); int temp=*(br + n-1); //把数组最后一位元素给t.

    2024-04-01 01:18:57
  • 如何解决 Camtasia9 导入 srt 字幕后出现乱码的问题

    如何解决 Camtasia9 导入 srt 字幕后出现乱码的问题

    最近在用Camtasia9 做视频录制的时候,需要导入第三方的字幕文件(SRT文件),在操作无误的情况下,字幕可以顺利导入软件中,但字幕出现了乱码的现象。 ...

    2024-04-01 01:18:49
  • 端口号占用快速解决方法

    端口号占用快速解决方法

    有的时候我们的电脑中突然软件卡死、然后重启的时候。之前运行的项目在端口没杀死就会被占用掉,无法启动。这个时候我们就需要找出这个端口,并杀死它。

    2024-04-01 01:18:22
  • macos端串口调试推荐 serial直装激活 for mac

    macos端串口调试推荐 serial直装激活 for mac

    Serial识别您连接的设备并按名称和类型列出它们,这样您就不必破译其神秘的BSD / dev路径。更好的是,Serial允许您以对您有意义的方式重命名您的设备。没有更简单的方法可以将Mac直接连接到路由器,防火墙,PBX系统,服务器等。

    2024-04-01 01:18:15
  • Arrays类

    Arrays类

    Arrays类

    2024-04-01 01:18:10
  • 带你领略 Kotlin 中的 “when”魔法

    提到 when,大家都会联想到 Java 中的 switch,然而在 kotlin 中,when 显然比 Java 中的 switch 要强大得多。首先,我们先来看看 when 的特点: 它可以作为表达式使用 使用更加安全 强大灵活的分支结构 可以不带参数 接下来,我来带大家逐步领略这些特点。以下面这段 Java 功能代码为例: switch(animal) { case EAGLE:...

    2024-04-01 01:18:01
  • MySQL进阶——存储引擎

    MySQL进阶——存储引擎

    (5) InnoDB被用在众多需要高性能的大型数据库站点上,InnoDB不创建目录,使用InnoDB时,MySQL将在MySQL数据目录下创建一个名为ibdata1的10MB大小的自动扩展数据文件,以...

    2024-04-01 01:17:36
  • 常用yum源 epel-release

    个人经验:epel 这个是很常用得东西,建议给系统装一下,比如 python3, zabbix 都需要用到 epel ,装epel 很easy,只需要执行下面一条命令即可:yum install -y epel-release...

    2024-04-01 01:17:29