通过ajax设置和检索外部cookie

时间:2011-04-16 02:07:28

标签: php jquery ajax

我正在向PHP脚本发送Ajax请求,我正在使用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 :(得分:0)

您可能遇到了ajax不允许跨站点调用(无法调用其他域)的问题。

大多数人使用iframe而不是ajax,将src放到其他网站的cookie脚本中。

iframe看起来像<iframe src="otherdomain.com/cookiecode.php?var1=something" style="visibility:hidden;display:none"></iframe>