如何解决跨域的问题

现在我们假设从8001端口的页面。页面上有一个按钮,点击他直接发送ajax请求到8002端口的请求进行获取一个集合的数据,虽然8002端口已经返回数据到8001的页面的上,但是http协议默认是解析不到的。

在这里插入图片描述

针对不同端口的异步请求,称为跨域,我们利用cors可以解决,方法很简单,注意以下两点

1.分清主次放,我们这里的主方就是8001端口的页面(发送异步请求)。次放是请求的8002端口(接受请求)。
2.分清主次放,我们只要在次方创建一个配置类,添加如下代码

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 ConfigBena {
    @Bean
    public CorsFilter corsFilter() {
        //1.添加CORS配置信息
        CorsConfiguration config = new CorsConfiguration();
        //1) 允许的域,不要写*,否则cookie就无法使用了
        config.addAllowedOrigin("http://localhost:8081");
        #只需修改这一个地方即可,意思就是说我允许XXX端口的任何请求共享我当前的端口的资源
        //2) 是否发送Cookie信息
        config.setAllowCredentials(true);
        //3) 允许的请求方式
        config.addAllowedMethod("*");
        // 4)允许的头信息
        config.addAllowedHeader("*");

        //2.添加映射路径,我们拦截一切请求
        UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource();
        configSource.registerCorsConfiguration("/**", config);
        //3.返回新的CorsFilter.
        return new CorsFilter(configSource);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值