10、Spring Boot——CORS

本文介绍了一种跨域资源共享技术CORS,该技术由W3C制定,旨在解决前端跨域请求问题。通过示例展示了如何在SpringBoot项目中使用@CrossOrigin注解解决跨域问题,并提供了全局配置跨域的解决方案。

CORS(Cross-Origin Resource Sharing)是由W3C制定的一种跨域资源共享技术标准,其目的是为了解决前端的跨域请求。再Java EE开发中,最常见的前端跨域请求解决方案是JSONP,但是JSONP只支持get请求,不支持其他请求,而CORS则支持多种请求。

例如创建一个名为cors1的Spring Boot工程,在工程下创建一个HelloController,它使用的是默认端口8080:

@RestController
public class HelloController {
    @GetMapping("/hello")
    public String hello(){
         return "hello";
    }
}

因为要跨域,所以要再提供一个cors2工程,给它设置端口号为8088:
在这里插入图片描述在cors2工程中创建一个index.html页面,引入jQuery,通过Ajax技术向8080端口中的hello接口发送一个请求:
在这里插入图片描述启动项目后发起请求,这时我们发现请求不被允许:
在这里插入图片描述加一个@CrossOrigin注解就可以解决跨域问题了
在这里插入图片描述
此时就可以访问了
在这里插入图片描述在这里插入图片描述
这样是解决了跨域问题,但是这样需要在每个方法是写,很麻烦,当然也可以写在每个类上面,但是这样也还是麻烦,因此我们还可以像下面这样写:
创建一个WebMVCConfig类实现WebMVCConfigurer
在这里插入图片描述

@Configuration
public class WebMVCConfig implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**").allowedMethods("http://localhost:8088");
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值