• 解决前后端分离后的Cookie跨域问题



    一. 前端Ajax关键配置

    $.ajax({
      type: "post",
      url: xxx,
      data: xxx,
      contentType: 'application/json',
      dataType: "json",
      xhrFields: {
          withCredentials: true
      },
    
      success: function (data) {
      }
    })

     

    二、后端过滤器关键配置

      //解决Cookie跨域问题
      response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
      response.setHeader("Access-Control-Allow-Credentials", "true");
      response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
      response.setHeader("Access-Control-Allow-Methods","GET, POST, PUT, DELETE");
    
      //解决 Content-Type:application/json 时跨域设置失败问题
      if("OPTIONS".equals(request.getMethod())) {
          //放行OPTIONS请求
          filterChain.doFilter(request, response);
          return;
      }

    注意:

    • "Access-Control-Allow-Origin" 不能设置成 "*"
    • 当 Content-Type 为 application/json 时,Ajax实际会发两次请求,第一次是一个OPTIONS请求,这时过滤器一定得放开

      

     

  • 相关阅读:
    个人冲刺6
    个人冲刺5
    个人冲刺4
    学习进度10
    个人冲刺3
    个人冲刺2
    单词统计
    返回一个整数数组中最大子数组的和
    JavaWeb_JavaEE_命名规则 转载http://www.cnblogs.com/xwdreamer/
    软件工程作业(四则运算web界面实现)-3
  • 原文地址:https://www.cnblogs.com/gdufs/p/8442648.html
Copyright © 2020-2023  润新知