【问题标题】:Apache2.49 cookies not working via my ProxyPass VirtualHostApache2.49 cookie 无法通过我的 ProxyPass VirtualHost 工作
【发布时间】:2018-12-10 13:11:37
【问题描述】:

在 apache virtualHost 我有这些命令:

            ProxyPass "/s"  "http://127.0.0.1:3001"
            ProxyPassReverse "/s"  "http://127.0.0.1:3001"
            RewriteRule ^/s/(.*) http://127.0.0.1:3001/$1 [P,L]
            ProxyPassReverseCookiePath "/" "/"

后端服务器是 NodeJS。代理本身工作正常。问题是节点在 HTTP 标头(会话 ID)中发送了一个 set-cookie,但浏览器似乎忽略了它。我用 Chromium 和 Firefox 进行了测试,但没有一个创建 cookie。我试图更改虚拟主机配置,但似乎无法解决问题 set-cookie 命令是:

set-cookie: sid=s%3AhgHWDO3D...BBUZbbOA; Path=/; HttpOnly; Secure;HttpOnly;Secure

我需要你的帮助来解决这个问题。谢谢。

更新 如果 url 包含对节点的直接请求:

https://example.com/s/backend

它有效。它创建的会话是 cookie。但是如果这个 URL 是从 JS 中的 AJAX 请求中调用的,它不会创建 cookie。 https://example.com 用脚本加载 JS 文件加载 HTML。该 JS 文件使用路径 https://example.com/s/something 对后端进行 AJAX 调用,在这种情况下永远不会创建 cookie。 有什么建议吗?

更新 我发现问题出在我使用 Fetch API 检索 JSON 文件时。此代码运行不会创建会话 ID cookie:

    fetch("https://localbestbatteriesonline.com/s/p.json?0103")   
  .then(function(response) {
     return response.json();
   })
   .then(function(myJson) {
     console.log(myJson);
   });

但如果我有这段代码,它会创建 cookie:

xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {      
      console.log(this.responseText);
    }
  };
  xhttp.open("GET", "https://localbestbatteriesonline.com/s/p.json?0103", true);
  xhttp.send();

分析请求,两者完全相同。两者都接收要创建的 cookie。 任何想法为什么使用 fetch 不起作用?

【问题讨论】:

    标签: setcookie apache2.4 proxypass


    【解决方案1】:

    问题解决了。使用 Fetch API 不会像在 XMLHttpRequest 中那样包含 cookie 交换。因此,它不会创建会话 ID cookie。要启用此功能,Fetch 调用必须具有以下选项: 凭据:“同源”。

    fetch("https://localbestbatteriesonline.com/s/p.json?0103",{credentials:"same-origin"})
      .then(function(response) {
        return response.json();
      })
      .then(function(myJson) {
        console.log(myJson);
      });
    

    现在可以了。

    【讨论】:

      猜你喜欢
      • 2011-02-09
      • 2019-04-13
      • 2019-04-09
      • 2014-02-23
      • 1970-01-01
      • 2017-07-12
      • 2014-07-17
      • 2014-12-25
      • 2011-02-06
      相关资源
      最近更新 更多