【问题标题】:Sending Cookies across Cross Domain跨域发送 Cookie
【发布时间】:2020-01-04 13:44:29
【问题描述】:

目标:跨域共享 cookie

我们的 UI 在端口 P1 的服务器“A”中运行,我们的服务已启动并在端口 P2 的同一服务器“A”中运行。

 UI (Server 'A', Port P1) ----> Services (Server 'A', Port P2)

从 UI 向服务进行休息调用时,cookie 不会作为请求的一部分发送。

我了解 cookie 不会在域之间共享。尝试了Why is jquery's .ajax() method not sending my session cookie? 中建议的方法,但没有成功。

 $.ajax({
     url: a_cross_domain_url,
     xhrFields: {
     withCredentials: true
      }
    });

计划尝试以下方法,对于实现我们的目标的任何意见或想法将不胜感激。谢谢。

方法:

  1. 按照https://www.drupal.org/node/1133084 中的建议在 Cookie 标头属性中设置所需的 cookie

    $.ajax({
     url: a_cross_domain_url,
     xhrFields: {
     withCredentials: true
      },
      //    headers: {'Cookie' : 'cookieName=cookieValue'},
      beforeSend: function(xhr) {
           xhr.setRequestHeader("Cookie", 'cookieName=cookieValue');
      });
    
  2. 使用通用 VIP(比如:https://example.com)托管和访问 UI 和服务,这样浏览器就不会感觉到请求是跨域发出的。

     UI (https://example.com) ----> Services (https://example.com/service1)
    

更新:

我们继续采用第二种方法,因为这两个应用程序都由一个共同的 VIP 访问,cookie 是由浏览器发送的。

【问题讨论】:

标签: jquery cookies cross-domain


【解决方案1】:

我觉得第二种方法更干净。我已经尝试过并且有效。

【讨论】:

    猜你喜欢
    • 2021-03-05
    • 2012-06-09
    • 2019-02-11
    • 2020-12-20
    • 2014-07-16
    • 2012-08-29
    • 2013-01-05
    • 2017-10-25
    • 1970-01-01
    相关资源
    最近更新 更多