2011-04-16 61 views
0

我向一個PHP腳本發送了一個Ajax請求,我使用setcookie來設置外部域的cookie。之後,我發送另一個Ajax請求到外部域來讀取cookie。我無法取得成果。我正在使用jQuery發送Ajax請求。通過ajax設置和檢索外部cookie

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

您可能正在運行到問題,在AJAX不允許跨站點調用(不能調用到另一個域)。

大多數人使用iframe而不是ajax,將src放到其他站點的cookie腳本中。

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

+0

您能詳細說明iframe過程嗎? :) – Haris 2011-04-16 07:02:54

+0

真的很簡單,只需構建一個iframe,從要存儲cookie的站點(即使在url中傳遞變量)中顯示一個空白頁面(隱藏在您的頁面中)。 iframe被加載,存儲來自其他域的cookie,我將在帖子中添加一個示例。 – Ben 2011-04-16 07:34:46