springboot解决跨域问题

本文涉及的产品
.cn 域名,1个 12个月
简介: 跨域问题指前端调用与后端接口不在同一域名或端口时产生的安全限制。本文介绍两种在Spring Boot中解决跨域问题的方法:一是通过配置CorsFilter,二是实现WebMvcConfigurer接口。配置完成后重启项目即可生效。作者:博笙困了。来源:稀土掘金。

首先先了解一下什么是跨域问题?

前端调用的后端接口不属于同一个域(域名或端口不同),就会产生跨域问题,也就是说你的应用访问了该应用域名或端口之外的域名或端口。

SpringBoot跨域问题设置

方法一:

java

代码解读

复制代码

package com.bo.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

@Configuration
public class CorsConfig {

    // 当前跨域请求最大有效时长。默认是一天
    private static final long MAX_AGE = 24 * 60 * 60;

    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.addAllowedOrigin("http://localhost:8080"); // 1 设置访问源地址
        corsConfiguration.addAllowedHeader("*"); // 2 设置访问请求头
        corsConfiguration.addAllowedMethod("*"); // 3 设置访问请求方法
        corsConfiguration.setMaxAge(MAX_AGE);
        source.registerCorsConfiguration("/**", corsConfiguration); // 4 对接配置跨域设置
        return new CorsFilter(source);
    }

}

方法二:

java

代码解读

复制代码

/**
 * 跨域配置
 */
@Configuration
public class CorsConfig implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        // 设置允许跨域请求路径
        registry.addMapping("/**")
                // 设置允许跨域请求的域名
                .allowedOriginPatterns("*")  //或.allowedOriginPatterns("http://www.baidu.com") 指定域名
                //是否允许cookie
                .allowCredentials(true)
                // 设置允许的请求方式
                .allowedMethods("GET", "POST", "PUT", "DELETE")
                // 设置允许的header属性
                .allowedHeaders("*")
                // 允许跨域时间
                .maxAge(3600);
    }
    
}

配置好重新启动后端项目即可生效


转载来源:https://juejin.cn/post/7295276751596798004

相关文章
|
6月前
|
Java Spring
springboot跨域配置
springboot跨域配置
72 0
|
前端开发 安全 Java
SpringBoot解决跨域问题
SpringBoot解决跨域问题
|
3天前
|
前端开发 安全 JavaScript
SpringBoot 如何解决跨域问题?
本文深入探讨了Spring Boot解决跨域问题的方法,包括全局配置CORS、使用@CrossOrigin注解和自定义过滤器,提供了详细的代码示例和分析,帮助开发者有效应对Web开发中的跨域挑战。
|
6月前
|
前端开发 JavaScript Java
SpringBoot解决跨域访问的问题
本文介绍了跨域访问的概念及其解决方案。同源策略规定浏览器限制不符合协议、Host和端口的请求,导致跨域访问被禁止。为解决此问题,文中提出了三种策略:1) 前端利用HTML标签的特性(如script、iframe)和JSONP、postMessage规避同源策略;2) 通过代理,如nginx或nodejs中间件,使得所有请求看似来自同一源;3) CORS(跨域资源共享),通过设置HTTP响应头允许特定跨域请求。在SpringBoot中,实现CORS有四种方式,包括使用CorsFilter、重写WebMvcConfigurer、CrossOrigin注解以及直接设置响应头。
137 0
|
6月前
|
Java
SpringBoot 配置解决跨域问题
SpringBoot 配置解决跨域问题
|
6月前
|
Java
SpringBoot解决跨域问题 几种方案
SpringBoot解决跨域问题 几种方案
109 0
|
6月前
|
前端开发 Java
只通过springboot一键解决跨域问题
只通过springboot一键解决跨域问题
27 0
|
前端开发 安全 Java
springboot解决跨域
springboot解决跨域
86 0
springboot解决跨域
|
前端开发 Java
SpringBoot解决前后端分离跨域问题
SpringBoot解决前后端分离跨域问题
64 0
|
JavaScript 前端开发 安全
Springboot实现跨域
本篇文章主要讲述java 后端 实现 CORS 跨域请求的方式
127 0
下一篇
无影云桌面