Настройка Session / Cookie через ajax-запрос, сделанный на другом сайте - PullRequest
1 голос
/ 31 января 2011

Это моя проблема: у меня есть веб-сайт example.com, в котором файл index.html представляет собой <script src="website.net/js.js"></script>. Вы можете видеть, что это на другом веб-сервере. В js.js у меня есть некоторые данные, которые я хочу отправить php. Для этого я использую Ajax. Итак, я сделал запрос к "website.net/data.php", используя метод get. В data.php файле все в порядке, я получил значение, но я хочу установить cookie, значение которого я получу через ajax. Здесь проблема. Функция setcookie сообщает, что куки были установлены, но когда я проверяю в браузере, куки нет!

Хорошо работает, если файл index.html, в котором я использую <script src="website.net/js.js"></script>, находится в том же домене, где я делаю запрос. Если он находится в другом домене, он больше не работает.

Я прочитал кое-что о кроссплатформенном сайте Ajax, но я не хочу отправлять что-то обратно на example.com. Все, что я хочу, - это отправить некоторые данные с сайта example.com на website.net, а затем установить cookie на основе этого значения.

Из example.net я беру одно значение. На веб-сайте.net я получаю это значение, проверяю, не установлен ли он на файл cookie, если нет, я его устанавливаю. На этой же странице website.net я тоже использую этот файл cookie.

Ответы [ 3 ]

5 голосов
/ 31 января 2011

Где вы проверяете, установлен ли файл cookie?В домене example.com или в домене website.net?

В случае, если вы пытаетесь получить доступ к cookie-файлу с помощью example.com, просто невозможно написать / получить доступ или сделать что-либо с cookieдругой домен.Это из соображений безопасности.Если бы вы могли, любой другой веб-сайт мог бы получить доступ к вашим файлам cookie и легко украсть вашу личность.

0 голосов
/ 31 января 2011

Большое спасибо! Я нашел другой способ отправить данные в файл php без ajax, используя базовый JavaScript и <img /> тег

Например: example.com имеет в индексе:

<script type="text/javscript" src="http://website.net/js.js"></script>

В файле js.js у меня есть

var important_data = 123; // 

var src = "http://website.net/process.php?important_data=" + important_data;
document.write('<img src="' + src + '"/> ');

Теперь, каждый раз, когда я загружаю example.com, он отправляет на website.net важные данные. Я попытался установить cookie в файл process.php, и это сработало! Я проверил эту идею на локальном хосте (оба «сайта» были на моем локальном сервере), но она также должна работать между двумя разными доменами Я постараюсь проверить, работает ли он между двумя разными сайтами. После этого я вернусь, чтобы поделиться результатом.

Спасибо!

Позже Править: Я проверил, могу ли я установить cookie, используя этот метод, и он работает! Работает отлично! Файл cookie для website.net не настроен для этого домена, он настроен для example.com. Именно так, как я хочу!

0 голосов
/ 31 января 2011

Попробуйте установить cookie в пределах iframe. Я не уверен, что вы действительно можете установить куки для website.net с помощью JavaScript только потому, что js.js загружен из этого домена.

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