我正在向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);
}
}
答案 0 :(得分:0)
您可能遇到了ajax不允许跨站点调用(无法调用其他域)的问题。
大多数人使用iframe而不是ajax,将src放到其他网站的cookie脚本中。
iframe看起来像<iframe src="otherdomain.com/cookiecode.php?var1=something" style="visibility:hidden;display:none"></iframe>