Ajax и идентификаторы сессий - PullRequest
1 голос
/ 07 апреля 2010

Как бы вы узнали, что ajax-запросы связаны между собой?

Обычно при запросах HTTP-HTML файлы cookie хранят хэш md5, представляющий идентификатор сеанса.

Я хотел бы добавить, что мои вызовы ajax являются междоменными.

Обновлено :

Пример:

var data1 = 'asdf';
$.ajax({
  url: 'http://differentdomain.com/ajax',
  data: 'data1=' + data1
});

Теперь с этим ajax-запросом делают многие клиенты (браузеры / компьютеры).Я хотел бы знать, что они возникли из одного сеанса браузера.Я думал, что использование идентификатора сессии может быть решением.

Существует ли стандартный шаблон для AJAX и идентификаторов сеансов?Я использую Java на стороне сервера.

Ответы [ 2 ]

2 голосов
/ 07 апреля 2010

AJAX-запросы на стороне клиента.Клиент # 1, использующий IE, попадает на ваш сайт и обрабатывает любой клиентский код, все части одного сеанса.Клиент № 2, использующий Safari, попадает на ваш сайт и обрабатывает любой клиентский код, все части другого сеанса.

Если вы не сгенерируете идентификатор сессии, в javascript он не будет вам доступен изначально.Если вы можете, ради уникальности, лучше всего сгенерировать или получить идентификатор сеанса со стороны сервера.Если нет, вы можете использовать метод, подобный 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-сервер] (например, Tomcat), вы можете:

var data1 = 'asdf';
var sessionId = '<% session.getId() %>';
$.ajax({ 
  url: 'http://differentdomain.com/ajax', 
  data: 'data1=' + data1 + '&sid=' + sessionId
}); 
0 голосов
/ 10 апреля 2010

Я решил свою проблему с помощью UUID.randomUUID () и проверил, использовался ли он еще в моей базе данных. Затем используя UUID в качестве идентификатора сеанса.

http://java.sun.com/j2se/1.5.0/docs/api/java/util/UUID.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...