spring boot2 (31)-cors跨域请求

假如我们开发了一些接口部署到网上,而我们的客户也有一个网站,会通过ajax请求我们的接口,并将结果展示到他们的网站,这就是跨域。


直接请求No Access-Control-Allow-Origin

我现在192.168.112.1上启动一个客户项目,用jquery向接口服务器192.168.112.150:8080/test发起ajax请求

	$.ajax({
		url : 'http://192.168.112.150:8080/test',
		type : 'get',
		success : function(d) {
		}
	});

浏览器控制台会报错:No 'Access-Control-Allow-Origin' header is present on the requested。意思是该资源不允许跨域请求。

配置跨域请求

在接口服务器做以下配置,/**表示所有接口允许跨域,也可以只配置一部分接口,再次请求就不会报错了。

@SpringBootConfiguration
public class Config implements WebMvcConfigurer{

	public void addCorsMappings(CorsRegistry registry) {
		registry.addMapping("/**");
	}
}

设置白名单

以上配置,默认所有其他服务都可以发起跨域请求,存在安全问题,修改修改可以设定只允许指定ip跨域请求

		registry.addMapping("/**")
			.allowedOrigins("http://192.168.112.1:8081");
注意:此时在浏览器用localhost请求html是不能跨域的,因为这里配的是ip,所以只认ip域名,参数中可以配多个ip。

关于WebMvcConfigurer

第19篇中我用extends WebMvcConfigurerAdapter来实现web mvc配置,这在spring boot2中已经不建议使用,而推荐使用implements WebMvcConfigurer接口的方式实现web mvc配置。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值