您如何知道ajax请求是否相关?
通常,对于HTTP-HTML请求,cookie将存储表示会话ID的md5哈希。
我想补充一下,我的ajax调用是跨域的。
已更新:
示例:
var data1 = 'asdf';
$.ajax({
url: 'http://differentdomain.com/ajax',
data: 'data1=' + data1
});
现在有许多客户端(浏览器/计算机)发出这个ajax请求。我想知道它们来自一个浏览器会话。我认为使用会话ID可能是一个解决方案。
AJAX&是否有标准模式?会议ID?我在服务器端使用Java。
答案 0 :(得分:2)
AJAX请求是客户端的。使用IE的客户端#1访问您的站点并处理任何客户端代码,这是一个会话的所有部分。使用Safari的客户端#2访问您的站点并处理任何客户端代码,这是另一个会话的所有部分。
除非您生成会话ID,否则javascript中本身没有可用的。如果可以,为了唯一性,最好从服务器端生成或获取会话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
});
答案 1 :(得分:0)
我通过使用UUID.randomUUID()解决了我的问题,并检查它是否已在我的数据库中使用过。然后使用UUID作为会话ID。