微服务处理Access-Control-Allow-Origin跨域问题

本文档介绍了在前后端分离项目部署时遇到的跨域问题及其解决方案。当前端和后端服务IP相同但端口不同时,会触发浏览器的CORS策略。为了解决这个问题,可以通过在Spring Boot后端配置CORS来允许跨域请求。示例代码展示了如何在`CorsConfig`和`GlobalCorsConfig`类中设置允许所有来源、头信息和方法,并设置预检请求的有效期为一小时。
摘要由CSDN通过智能技术生成

前后端分离项目部署时,ip相同端口不同导致跨域问题

问题描述
Access to XMLHttpRequest at ‘接口’ from origin ‘前端服务’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

package cn.rains.screen.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @Author: 
 * @Date: 2021/9/8 16:31
 * @Description:
 */
@Configuration
public class CorsConfig implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        /*
         * 一小时内不需要再预检
         */
        registry.addMapping("/**")
                .allowedOrigins("*")
                .allowCredentials(true)
                .allowedHeaders(CorsConfiguration.ALL)
                .allowedMethods(CorsConfiguration.ALL)
                .maxAge(3600);
    }
}

@Configuration
public class GlobalCorsConfig {

    /**
     * 允许跨域调用的过滤器
     */
    @Bean
    public CorsFilter corsFilter() {
        CorsConfiguration config = new CorsConfiguration();
        //允许所有域名进行跨域调用
        config.addAllowedOrigin("*");
        //允许跨越发送cookie
        config.setAllowCredentials(true);
        //放行全部原始头信息
        config.addAllowedHeader("*");
        //允许所有请求方法跨域调用
        config.addAllowedMethod("*");
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", config);
        return new CorsFilter(source);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值