【问题标题】:Use the same session in XMLHttpRequest在 XMLHttpRequest 中使用相同的会话
【发布时间】:2018-06-21 00:05:22
【问题描述】:

我正在尝试向服务器发出重复请求。但是每个请求都使用不同的会话 ID 完成。我搜索了很多,但无法弄清楚如何。我尝试在请求中设置 Keep-Alive,但它不会接受标头说“不安全标头”。

我就是这样做的

request = new XMLHttpRequest();
request.open("POST", HOST, true);
request.send("test");

但是每次我调用 send 时,服务器端的会话 ID 都是不同的。如何使用 JavaScript 在同一会话中发出请求?

【问题讨论】:

  • 你不能,这必须在服务器上完成。
  • @Teemu 那么会话处理背后的逻辑是什么?我能够在服务器端处理会话,但是如果每个请求都带有不同的会话 ID,而不管浏览器或选项卡如何,那又有什么意义呢?我可以在 Java 应用程序中做到这一点,但我对 HTML 和 Javascript 还是很陌生。如有任何帮助,我将不胜感激。
  • 这取决于您的服务器端语言。
  • @Teemu 我正在使用 Java Servlet。我已经使用 Java 实现了类似的概念。我可以在同一个会话中重复发出请求,但在 JavaScript 中,XMLHttpRequest 对象在收到响应时总是关闭。我必须再次“打开”连接,这可能正在创建一个新会话。即使在收到响应后,我也需要保持该对象打开。这可能吗?
  • @Teemu 设置 request.withCredentials = true 帮助我为重复请求保持相同的会话。

标签: javascript html session


【解决方案1】:

原来是这样设置

request.withCredentials = true;

帮助我保持会话。

【讨论】:

  • 我觉得你也可以直接设置request.session
猜你喜欢
  • 1970-01-01
  • 2013-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-14
  • 2011-10-22
  • 1970-01-01
  • 2023-03-17
相关资源
最近更新 更多