установка и получение внешних куки через ajax - PullRequest
0 голосов
/ 16 апреля 2011

Я отправляю запрос Ajax в скрипт PHP, где я использую setcookie для установки файлов cookie во внешнем домене. После этого я отправляю еще один Ajax-запрос на внешний домен для чтения файлов cookie. Я не могу достичь результатов. Я использую jQuery для отправки запросов Ajax.

PHP-скрипт:

<?php
// yummy cookies ?

header("Access-Control-Allow-Origin: " . $_SERVER['HTTP_ORIGIN']);
header("Access-Control-Allow-Credentials: true");

if($_GET['read'] == true) {
    echo json_encode(
        array(
            'user_id' => $_COOKIE['user_id'],
            'twitter_name' => $_COOKIE['twitter_name'],
            'facebook_id' => $_COOKIE['facebook_id']
        )
    );
}

if($_GET['write'] == true) {
    if($_GET['type'] == 'twitter') {
        setcookie('twitter_name', $_GET['twitter_name'], time() + 1209600);
        setcookie('user_id', $_GET['user_id'], time() + 1209600);
    }

    if($_GET['type'] == 'facebook') {
        setcookie('facebook_id', $_GET['facebook_id'], time() + 1209600);
        setcookie('user_id', $_GET['user_id'], time() + 1209600);
    }
}

1 Ответ

0 голосов
/ 16 апреля 2011

Возможно, вы столкнулись с проблемой, когда ajax не разрешает межсайтовые звонки (не может звонить на другой домен).

Большинство людей используют iframe вместо ajax, помещают src в скрипт cookie другого сайта.

iframe будет выглядеть как <iframe src="otherdomain.com/cookiecode.php?var1=something" style="visibility:hidden;display:none"></iframe>

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