2011-12-16 10 views
2

stackoverflowのおかげで小さなプロジェクトが始まりましたが、もう一度アドバイスが必要です。ユーザーがdomain1.comにログオンしていて、domain2でメッセージを返すかどうか確認したいと思います。コードにはさらに多くのものがあります。以下に、その基本的な例を示します。 http://domain2.comユーザーが別のドメインからログインしていることを確認してください

<script type="text/javascript" src="http://domain1.com/test.php?js"></script> 

test.phpを上

のindex.phpはhttp://domain1.comです。

<?php 
if (isset($_GET['js'])){ 
header("Content-type:text/javascript"); 
?> 

function doAjax(){ 
$.getJSON("http://domain1.com/index.php/home/callback.php?name=name&callback=?", 
function(message) { 
alert("Data Saved"); 
}); 
} 

document.write('<button onclick="doAjax();">Submit</button>'); 
<?php } ?> 

<?php exit; } ?> 

callback.phpはhttp://domain1.comです。これは、ユーザーがログインしているかどうかをチェックしたい場所です。ユーザーがログインしている場合、ファイルが書き込まれます。そうでない場合は、ログインを求めるメッセージをdomain2.comに送信します。

<?php 
$callback = $_GET['callback']; 

$name = $_GET['name']; 

$myFile = "txt/tester.txt"; 
$fh = fopen($myFile, 'a') or die("can't open file"); 
fwrite($fh, $name); 
fclose($fh); 

header("Content-Type: application/javascript"); 
?> 

<?php echo $callback; ?>("Message from the server"); 

この最後の部分は前の質問から得ました。 <?php echo $callback; ?>("Message from the server");それがdomain2へのメッセージなら、どうすればいいですか?

答えて

0

ドメイン2は、ドメイン1のcallback.phpのJSONPオブジェクトを期待しています。JSONオブジェクトでメッセージを書式設定するには、メッセージを連想配列で囲みます(例:$msg = array('message' => 'This is the callback message');)。 echo $_GET['callback'].'('.json_encode($msg).')';とドメイン2はまた、application/jsonにごheader()宣言でContent-Typeを設定します。

+0

答えに感謝を。すべてのものがどこに行くあなたは、私がしようとしてきたが、それは仕事を得ることができないのですか?教えてもらえます。 – Ciprian

関連する問題