java - Ajax 和 session ID

标签 java jquery ajax

您如何知道 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/

相关文章:

java - 有什么办法可以知道一个EJB异步进程的进度吗?

Javascript:为函数创建回调

javascript - $(modalEl).modal ('show' ) 和 $(modalEl).modal ('hide' ) 不工作

javascript - 通过切换类和 CSS 转换在 jquery 中创建移动菜单

javascript - 单击它时是否可以填充 SELECT 下拉列表?

php - AJAX 问题并显示多个 html 标签

java - 无法访问我的 Parcelable 对象方法

java - 如何在 JAXB 的 unmarshal xml 中转义特殊字符

java - TableCellEditor 类不起作用

php - 使用 .ajax() 返回 php 文件内容