SpringBoot学习(3)-SpringBoot添加支持CORS跨域访问

CORS(Cross-Origin Resource Sharing)“跨域资源共享”,是一个W3C标准,它允许浏览器向跨域服务器发送Ajax请求,打破了Ajax只能访问本站内的资源限制。我们在开发中都会遇到前端请求后台服务器出现跨域错误,下面我就讲一下如何让你的SpringBoot项目支持CORS跨域。

第一步 搭建SpringBoot项目

怎么搭建一个SpringBoot项目及添加相关依赖,我在这里就不细说了,相信对各位来说都是小菜。

第二步 配置CORSConfiguration

新建一个类CORSConfiguration,继承WebMvcConfigurerAdapter,并重写addCorsMappings方法。

@Configuration
public class CORSConfiguration extends WebMvcConfigurerAdapter{
	@Override
	public void addCorsMappings(CorsRegistry registry) {
		registry.addMapping("/**")
				.allowedMethods("*")
				.allowedOrigins("*")
				.allowedHeaders("*");
		super.addCorsMappings(registry);
	}
}

如果是Springboot2.0以上,用下面的方法:

@Configuration
public class CORSConfiguration extends WebMvcConfigurationSupport {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedMethods("*")
                .allowedOrigins("*")
                .allowedHeaders("*");
        super.addCorsMappings(registry);
    }
 
}

配置的详细信息说明如下:
addMapping:配置可以被跨域的路径,可以任意配置,可以具体到直接请求路径。
allowedMethods:允许所有的请求方法访问该跨域资源服务器,如:POST、GET、PUT、DELETE等。
allowedOrigins:允许所有的请求域名访问我们的跨域资源,可以固定单条或者多条内容,如:“http://www.aaa.com”,只有该域名可以访问我们的跨域资源。
allowedHeaders:允许所有的请求header访问,可以自定义设置任意请求头信息。

到此我们的配置就完成了,是不是很简单呢?下面进行测试。

第三步 测试

①. 新建一个IndexController,接收一个/cors请求。

@RestController
public class IndexController {
	
	@RequestMapping(value = "/cors")
    public String corsIndex(){
        return "hello,this is cors test!";
    }
    
}

②…新建一个login.html,点击登录按钮就会触发下面的请求。

 <script>
    	$(function(){
    		$('.login_btn').click(function(){
                $.ajax({
                    url: 'http://192.168.1.104:8080/cors',
                    success: function(data){
                        alert(data);
                    }
                })
    		});
    	});
    </script>

③. 然后我在同一个局域网的另一台电脑上访问login.html,结果如下:
这里写图片描述

跨域访问成功!

④. 我将CORSConfiguration 的配置信息注释掉。

这里写图片描述

然后访问login.html,结果如下:

这里写图片描述

访问失败,根据失败信息,可以得知不允许跨域访问。

  • 13
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值