springboot(前后端分离)遇到跨域问题[即如:'Access-Control-Allow-Origin' header is present....]处理笔记

一、跨域问题

基于浏览器的同源策略规定某域下的客户端在没明确授权的情况下,是不能读写另一个域的资源。但是在我们实际开发过程中,前后端经常是相互分离的,并且前后端的项目部署也常常不在一个服务器内或者在一个服务器的不同端口下。前端想要获取后端的数据,就必须发起请求,如果不做处理,就会受到浏览器同源策略的约束。后端可以收到请求并返回数据,但是前端无法收到数据。

二、控制台输出:Access to XMLHttpRequest at …如下

在这里插入图片描述

三、解决

第一种.在config包下创建CrossConfig.java配置类
CrossConfig.java

package com.system.honour.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;
/**
* @Description:    跨域处理
* @Author:         Joe
* @CreateDate:     2020/3/31 14:18
*/
@Configuration
public class CrossConfig {

    private CorsConfiguration buildConfig(){
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.addAllowedMethod("*");
        corsConfiguration.addAllowedHeader("*");
        corsConfiguration.addAllowedOrigin("*");
        return corsConfiguration;
    }

    @Bean
    public CorsFilter corsFilter(){
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**",buildConfig());
        return new CorsFilter(source);
    }
}

第二种.Controller层在需要跨域的【类或者方法】上加上@CrossOrigin注解即可,这个根据需求相应添加

这两种方法我们项目中都有采用,其它更好的大家多多赐教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值