您如何知道 ajax 请求是相关的?
通常,对于 HTTP-HTML 请求,cookie 会存储表示 session ID 的 md5 哈希值。
我想补充一点,我的ajax调用是跨域的。
更新:
示例:
var data1 = 'asdf';
$.ajax({
url: 'http://differentdomain.com/ajax',
data: 'data1=' + data1
});
现在,许多客户端(浏览器/计算机)都会发出此 ajax 请求。我想知道它们源自单个浏览器 session 。我认为使用 session ID 可能是一个解决方案。
AJAX 和 session ID 是否有标准模式?我在服务器端使用 Java。
最佳答案
AJAX 请求是客户端的。使用 IE 的客户端 #1 访问您的站点并处理任何客户端代码,所有这些都是一个 session 的一部分。使用 Safari 的客户端 #2 访问您的站点并处理任何客户端代码,所有这些都是另一个 session 的一部分。
除非您生成 session ID,否则 JavaScript 本身无法提供 session ID。如果可以的话,为了唯一性,最好从服务器端生成或获取 session ID。如果没有,您可以使用类似 this 的方法.
如果您使用 PHP,您可以这样做:
var data1 = 'asdf';
var sessionId = '<?php echo session_id(); ?>';
$.ajax({
url: 'http://differentdomain.com/ajax',
data: 'data1=' + data1 + '&sid=' + sessionId
});
如果您使用 ASP.NET,您可以这样做:
var data1 = 'asdf';
var sessionId = '<% =Session.SessionId %>';
$.ajax({
url: 'http://differentdomain.com/ajax',
data: 'data1=' + data1 + '&sid=' + sessionId
});
如果[某些 java web 服务器](例如 Tomcat),您可以:
var data1 = 'asdf';
var sessionId = '<% session.getId() %>';
$.ajax({
url: 'http://differentdomain.com/ajax',
data: 'data1=' + data1 + '&sid=' + sessionId
});
关于java - Ajax 和 session ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2589660/