spring boot 前后端分离时跨域问题解决方案

阅读: 评论:0

spring boot 前后端分离时跨域问题解决方案

spring boot 前后端分离时跨域问题解决方案

方案解决一:

 实现 WebMvcConfigurer  接口,请勿实现WebMvcConfigurerAdapter 接口,因为在 spring5.0中, WebMvcConfigurerAdapter  以被废除

import t.annotation.Configuration;
import org.springframework.fig.annotation.CorsRegistry;
import org.springframework.fig.annotation.WebMvcConfigurer;
@Configuration
public class CorsConfig implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").allowedOrigins("*").allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS").allowCredentials(true).maxAge(3600).allowedHeaders("*");}
}

方案解决二:

  1. Access-Control-Allow-Origin:必填字段, "*" 表示接受任意域名的请求
  2. Access-Control-Allow-Methods: 必填字段,它的值是逗号分隔的一个具体的字符串或者*,表明服务器支持的所有跨域请求的方法
  3. Access-Control-Allow-Credentials : 该字段可选。它的值是一个布尔值,表示是否允许发送Cookie,默认情况下,不发生Cookie,即:false
  4. Access-Control-Max-Age 该字段可选,用来指定本次预检请求的有效期,单位为秒。在有效期间,不用发出另一条预检请求,如果在开发中,发现每次发起请求都是两条,一次OPTIONS,一次正常请求,注意是每次,那么就需要配置Access-Control-Max-Age,避免每次都发出预检请求。
import t.annotation.Configuration;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebFilter(filterName = "CorsFilter ")
@Configuration
public class CorsFilter implements Filter {@Overridepublic void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {HttpServletResponse response = (HttpServletResponse) res;response.setHeader("Access-Control-Allow-Origin","*");response.setHeader("Access-Control-Allow-Credentials", "true");response.setHeader("Access-Control-Allow-Methods", "POST, GET, PATCH, DELETE, PUT");response.setHeader("Access-Control-Max-Age", "3600");response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");chain.doFilter(req, res);}
}

 

本文发布于:2024-02-02 03:30:02,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170681685441086.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:后端   解决方案   spring   boot   时跨域
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23