icon 2016/01/15 [Ajax]クロスドメインでのAjax通信
クロスドメインでAjax通信する場合、そのままではPHPセッションのやり取りができません。
(例えば、tokenを発行してサーバ間でデータ通信する場合とか)

ブラウザの仕様によって異なりますが、以下を指定してやれば大体大丈夫

・Javascript側で「xhrFields : {withCredentials: true}」を指定
・PHPヘッダーにドメインを明示的に指定(ワイルドカードはダメ)

PHP側サンプル


function request() {
        $allow_domain = '通信許可するドメイン';
        $values['token'] = $_SESSION['token'] = createToken();
   
        header('Content-type:application/json; charset=utf8');
        header("Access-Control-Allow-Origin: {$allow_domain}");
        header('Access-Control-Allow-Credentials: true');

        $results = json_encode($values);
        echo($results);
}

function createToken() {
      if ($_POST['secret_key'] == 'xxxxxxxx') {
             $token = 'xxxxxx';
      }
      return $token;
}

Javascript側サンプル※jQuery


var url = "https://xxxx.com/request";
var params = new Object();
params.secret_key = xxxxxxx;

$.ajax({
	type: 'POST',
	cache: false,
	url: url,
	data: params,
	xhrFields : {withCredentials: true},
	dataType: 'json',
	success: function(data) {
		//success
	},
	error:function() {
		//error
	}
});

このサイトについて

HTML5 & CSS3化しつつあるので、現在IEには対応してません。
できれば、Google Chromeやら Apple SafariのWebKit系をお勧めします。

DBからプログラムまで一応全て自作なので、バグってたらすいません。
実験でFlash版(Flex版)を先に作りましたが、ちょっと停止してます。

プロフィール

新宿近辺でSE & プログラマーしてます。
Webアプリの開発・設計とか、最近はiPhoneとか奮闘してます。
デザインはさっぱりです。

音楽は、昔からCubase打ち込み人間で、そっちの方が経歴は長いですが、最近はやる暇がないです。。。

今は、Gon's Privates ってバンドのキーボードやってます。
単発的に、なんちゃってジャズ系のライブもやってます。

名古屋生まれなのでドラゴンズ好きです。

Info && SNS

Gmail

 yohei.yoshikawa@gmail.com

Twitter

 http://twitter.com/yoo_yoo_yoo

あんまつぶやきませんが、一応技術系メインで使ってます。情報交換はこちらへ

FaceBook

 http://www.facebook.com/#!/profile.php?id=1439130626

海外の知り合いがいないので閑散としてます。

mixi

 http://mixi.jp/show_profile.pl?id=230072

音楽仲間とかはこっちメインでやってます。興味があればこちらへ