• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Y-wee
博客园    首页    新随笔    联系   管理     

解决跨域问题

解决跨域问题

跨域问题的产生

  • 访问协议不一致
  • 访问地址(ip)不一致
  • 端口号不一致

解决方案

  • 接口类加@CrossOrigin注解允许跨域

@CrossOrigin并不是万能的,有时候遇到加了还会遇到跨域问题,eg:

has been blocked by CORS policy: Request [header](https://so.csdn.net/so/search?q=header&spm=1001.2101.3001.7020) field token is not allowed by Access-Control-Allow-Headers in preflight response.

可以自定义过滤器解决:

package com.yl.common.common.util.filter;

import org.springframework.stereotype.Component;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * 跨域问题过滤器
 *
 * @author Y-wee
 */
@Component
public class SimpleCORSFilter implements Filter {
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletResponse res = (HttpServletResponse) response;
        res.setHeader("Access-Control-Allow-Origin", "*");
        res.setHeader("Access-Control-Allow-Credentials", "true");
        res.setHeader("Access-Control-Allow-Headers", "token");

        chain.doFilter(request, response);
    }

    @Override
    public void init(FilterConfig filterConfig) {
    }

    @Override
    public void destroy() {
    }

}

参考文档:

https://www.cnblogs.com/gaolight/p/14446100.html

https://blog.csdn.net/qq_40886696/article/details/108393026

记得快乐
posted @ 2022-06-18 18:50  Y-wee  阅读(60)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3