получение сеанса через кросс-домен ajax

Задний план:

Я разрабатываю трекер сайта, используя javascript. Вот как это работает:

1) Пользователь посещает любой домен, где сценарий трекера находится на "anydomain.com". Сценарий делает успешный вызов ajax в фоновом режиме в мой основной домен "masterdomain.com".

2) Когда "masterdomain.com" получает запрос, запускается следующий код PSEUDO. Он работает, проверяя существующий сеанс, и если он не существует, он создает новый.

Первый вызов кажется прекрасным, потому что я могу получить идентификатор сеанса в ответе. Однако каждый последующий вызов "masterdomain.com" создает новый сеанс. AKA сервер не находит "должен быть" существующий сеанс.

Пример кода PSEUDO:

if(session exists)
{
// update timestamp for session
}
else
{
// set a new session for visitor
}

// load template
api(array("accepted"=>session_id),callback);

Некоторые быстрые факты:

1) Это не похоже на проблему с исходным кодом (поскольку я могу нормально общаться с сервером).

2) Я пробовал это с помощью файлов cookie/сеансов, которые, похоже, не работают.

3) Я использую codeigniter (сеансы устанавливаются не для истечения срока действия на странице). Я также пытался использовать/не использовать сеансы базы данных).

Эта проблема также может быть решена, если есть еще один способ однозначно идентифицировать пользователя каждый раз, когда страница загружается на сервер (не используя IP).

Любая помощь будет очень признательна, поскольку я готов к тому, чтобы вырвать остальную часть моих волос из головы !!!! :(

0
источник поделиться
2 ответа

Этот ответ неполный в том, что вам нужно будет провести дополнительные исследования, но самый простой способ (который на самом деле не особенно "легкий") сделать это - использовать Javascript для размещения скрытого iframe на masterdomain.com и настроить iframe (например, используя postMessage) для извлечения сеанса из этого iframe на вашу страницу.

0
источник

С помощью вызовов AJAX вы можете отправлять и устанавливать cookie сеанса только в том случае, если URL-адрес, который вы вызываете, находится в том же домене, что и ваш сценарий вызова. Я думаю, вы должны создать iframe, вызвать ajax изнутри, и он должен работать нормально. Кстати, я понятия не имею, что вы пытаетесь отследить.

0
источник

Посмотрите другие вопросы по меткам или Задайте вопрос