解决跨域问题

一、跨域问题
在 Web 开发中,一个网页的 JavaScript 代码通过 AJAX 请求后端服务器接口时,如果请求的目标地址与当前页面的地址不在同一个域(域名、端口或协议任何一项不同),就会产生跨域问题。这种情况下,根据浏览器的安全机制(同源策略)就会会限制页面的跨域请求,以防止恶意网站对其他网站的访问和操作,保护用户信息安全。

二、解决方案(常用)
1、在Controller层加上@CrossOrigin 注解
2、自定义 WebMvcConfigurer

@Configuration
public class WebConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**") // 对所有路径生效
                .allowedOrigins("*") //允许所有源地址
                .allowedMethods("GET", "POST", "PUT", "DELETE") // 允许的请求方法
                .allowedHeaders("*"); // 允许的请求头
    }
}

3、使用 Filter 进行跨域配置


@Component
public class CorsFilter implements Filter {
 
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {
        // 将 ServletResponse 转换为 HttpServletResponse
        HttpServletResponse httpResponse = (HttpServletResponse) response;
 
        // 设置允许跨域请求的源地址
        httpResponse.setHeader("Access-Control-Allow-Origin", "*");
        
        // 设置允许的请求方法
        httpResponse.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE");
        
        // 设置允许的请求头
        httpResponse.setHeader("Access-Control-Allow-Headers", "*");
        
        // 继续执行 Filter 链
        chain.doFilter(request, response);
    }
}

相关推荐

  1. 解决问题

    2024-03-29 14:34:06       22 阅读
  2. 解决问题

    2024-03-29 14:34:06       7 阅读
  3. 问题+解决express

    2024-03-29 14:34:06       12 阅读
  4. 问题解决

    2024-03-29 14:34:06       42 阅读
  5. 如何解决问题

    2024-03-29 14:34:06       49 阅读
  6. 前端解决问题

    2024-03-29 14:34:06       12 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-29 14:34:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-29 14:34:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-29 14:34:06       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-29 14:34:06       20 阅读

热门阅读

  1. svg怎么用,后端返回svg文件流引入

    2024-03-29 14:34:06       17 阅读
  2. 2024.03.15 校招 实习 内推 面经

    2024-03-29 14:34:06       21 阅读
  3. NGINX安装Stream模块

    2024-03-29 14:34:06       18 阅读
  4. 山东专精特新申报基本要求

    2024-03-29 14:34:06       17 阅读
  5. 四、分治算法

    2024-03-29 14:34:06       19 阅读
  6. 2024蓝桥杯每日一题(背包)

    2024-03-29 14:34:06       21 阅读
  7. Vue3 实现基于token 用户登录

    2024-03-29 14:34:06       18 阅读
  8. 前端Vue开发技术总结

    2024-03-29 14:34:06       20 阅读
  9. day72Html

    day72Html

    2024-03-29 14:34:06      25 阅读
  10. 微信小程序监听用户经纬度变化

    2024-03-29 14:34:06       20 阅读
  11. 2024.3.25 ARM

    2024-03-29 14:34:06       19 阅读