跨域访问报错 2019-10-27

制作一个拦截器,在返回体中添加 响应头允许次次跨域


response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin")); //允许跨域请求


以下是我的完整代码:

我的完整代码:

@Component //通过拦截器实现跨域请求

@Slf4j

public class AllInterceptorimplements HandlerInterceptor {

@Override

    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)throws Exception {

//        System.out.println("拦截器执行");

        request.setCharacterEncoding("UTF-8"); //设置请求编码

        log.info("添加跨域支持:" + request.getRequestURL().toString());

        log.info("请求方法为 ===" + request.getMethod());

        //如果是OPTIONS 请求 ,就设置允许该次请求

        if (request.getMethod().equals("OPTIONS")) {

log.info("设置允许该请求");

            response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin")); //允许跨域请求

            response.setHeader("Access-Control-Allow-Headers", "Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild");

            response.setHeader("Access-Control-Request-Method", "GET,POST,PUT,DELETE"); //返回允许的方法

            response.setHeader("Access-Control-Allow-Credentials", "true"); //允许携带Cookie

            response.setCharacterEncoding("UTF-8"); //设置响应编码

            log.info("OPTIONS请求直接返回");

return false;

        }

  response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin")); //允许跨域请求            response.setHeader("Access-Control-Allow-Headers", "Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild");            response.setHeader("Access-Control-Request-Method", "GET,POST,PUT,DELETE"); //返回允许的方法            response.setHeader("Access-Control-Allow-Credentials", "true"); //允许携带Cookie 

response.setCharacterEncoding("UTF-8"); //设置响应编码

        return true;

    }

@Override

    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)throws Exception {

}

@Override

    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)throws Exception {

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 备注:有时候项目有点忙,都忘记思考,一次面试中提出的跨域的问题,才恍然大悟,做了一下小的总结,望指正! 过滤拦截请...
    Cherry300阅读 683评论 0 3
  • 随着软件开发分工趋于精细,前后端开发分离成为趋势,前端同事负责前端页面的展示及页面逻辑处理,服务端同事负责业务逻辑...
    lueyoo阅读 382评论 0 0
  • 跨域 浏览器的同源策略限制。同源策略是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的...
    Bertram_Wang阅读 3,699评论 2 6
  • 在工作中,大家应该都遇到过ajax跨域问题,浏览器的错误如下: XMLHttpRequest cannot loa...
    什么都懂一点的小白阅读 497评论 0 51
  • 本文首先描述 MVC 模式是什么,然后针对 MVC 的不足发表了作者的个人观点,随后引出了基于 REST 架构实现...
    java菜阅读 904评论 0 2

友情链接更多精彩内容