聊聊跨域问题的三种解决方式(jsonp,springboot CorsFilter,nginx)

引言:大家好,我是热爱coding,崇尚开源,乐于分享的【皮卡丘的猫】

跨域问题大家在前后端分离开发的时候大多数都会遇到过,目前解决跨域的方式有三种,前端的jsonp(暂且不演示怎么解决,前端同学自行百度一下),另外就是springboot CorsFilter,和nginx的跨域配置。

话不多说,直接上代码。

第一种代码方式,采用springboot的CorsFilter,代码如下

@Configuration
public class CorsConfig {

	public CorsConfig() {

	}

	@Bean
	public CorsFilter corsFilter() {
		// 1. 添加cors配置信息
		CorsConfiguration config = new CorsConfiguration();

		// 设置允许所有请求
		config.addAllowedOrigin("*");

		// 设置允许请求的方式
		config.addAllowedMethod("*");

		// 设置允许的header
		config.addAllowedHeader("*");

		// 设置是否发送cookie信息
		config.setAllowCredentials(true);

		// 2. 为url添加映射路径
		UrlBasedCorsConfigurationSource corsSource = new UrlBasedCorsConfigurationSource();
		corsSource.registerCorsConfiguration("/**", config);
		// 3. 返回重新定义好的corsSource
		return new CorsFilter(corsSource);

	}

}

第二种:nginx 配置文件修改,添加相关跨域配置。代码如下:

server {
        listen       89;
        server_name  localhost;

        # 允许跨域请求的域,*代表所有
        add_header 'Access-Control-Allow-Origin' *;
        # 允许带上cookie请求
        add_header 'Access-Control-Allow-Credentials' 'true';
        # 允许请求的方法,比如 GET/POST/PUT/DELETE
        add_header 'Access-Control-Allow-Methods' *;
        # 允许请求的header
        add_header 'Access-Control-Allow-Headers' *;

        location / {
            root   html;
            index  test.html;
        }



    }

至此,跨域问题就可以解决了,有问题的小伙伴们可以尝试一下吧。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皮卡丘的猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值