springboot的跨域解决办法

1.spring使用注解来解决跨域问题

在springboot的后端开发中,前后端分离是大势所趋,而跨域问题则是应该要解决的,话不多说,直接上代码

    @CrossOrigin (value = "http://localhost:8088",
	maxAge= 1800,allowedHeaders="*")
	public String cos() {

       return "注解跨域";

       }

注解跨域的实现主要是通过 @CrossOrigin (value = "*",maxAge= 1800,allowedHeaders="*")这一行代码实现,

其中value是 表示支持的域,这里表示来自 http://localhost:8080域的请求是支持跨域的,而如果想全部支持的可以把value的值改为"*",而maxAge 表示探测请求的有效期,这个属性默认是1800秒,为三十分钟,allowedHeaders表示的是请求头,而"*"则表示所有的请求头都被允许

2.spring使用全局配置解决跨域问题

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class CrosConfig implements WebMvcConfigurer {
	@Override
public void addCorsMappings(CorsRegistry registry) {
	registry.addMapping("/**")
	.allowedOrigins("*")
	.allowedMethods("*")
	.allowCredentials(true)
	.maxAge(3600)
	.allowedHeaders("*");
}
}

由于使用注解来解决跨域问题会使得代码重复和繁琐,所有我推荐使用全局配置解决跨域问题,而使用全局配置也很简单,只需要自定义类实现WebMvcConfigurer 接口,然后实现接口中的 addCorsMappings 方法。

其中addMapping :表示对哪种格式的请求路径进行跨域处理;

allowedHeaders :表示通过的请求头,默认可以允许所有的请求头;

allowedMethods: 表示可行的请求方法,默认是 GET POST HEAD; 而"*"代表支持所有的请求方法;

max.Age:表示探测请求的有效期;

allowedOrigins :表示支持的域

而在实现的时候,有两个问题需要注意:

1.@Configuration要在实现的方法上面加上这个注解来让springboot启动的时候扫描到并加载

2.要把配置类放在springboot的Application相同名称的包下,不然可能会扫描不到而报错。

而spring的跨域问题这两个应该可以解决基本的使用了,看完的点个赞吧

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值