PHP Ajaxドメイン横断問題解決案コードの例
本論文では、Access-Coontrol-Allow-Originを設定することにより、クロスドメインを実現する。
例えば、クライアントのドメイン名はclient.runoob.comであり、要求されたドメイン名はserver.runoob.comである。
直接ajaxを使って訪問すると、以下のエラーがあります。
XMLHttp Request cannot loadhttp://server.runoob.com/server.php. No'Access-Coontrol-Origin'header is present on the requested reource.Origin'http://client.runoob.com'is therefore not allowed access.
1、単一ドメインへのアクセスを許可する
あるドメイン名を指定(http://client.runoob.com)ドメインをまたぐ場合は、http://server.runoob.com/server.phpファイルヘッダに以下のコードを追加します。
複数のドメイン名を指定(http://client1.runoob.comを選択しますhttp://client2.runoob.comドメインをまたぐ場合は、http://server.runoob.com/server.phpファイルヘッダに以下のコードを追加します。
すべてのドメイン名へのアクセスを許可するには、http://server.runoob.com/server.phpファイルヘッダに以下のコードを追加します。
例えば、クライアントのドメイン名はclient.runoob.comであり、要求されたドメイン名はserver.runoob.comである。
直接ajaxを使って訪問すると、以下のエラーがあります。
XMLHttp Request cannot loadhttp://server.runoob.com/server.php. No'Access-Coontrol-Origin'header is present on the requested reource.Origin'http://client.runoob.com'is therefore not allowed access.
1、単一ドメインへのアクセスを許可する
あるドメイン名を指定(http://client.runoob.com)ドメインをまたぐ場合は、http://server.runoob.com/server.phpファイルヘッダに以下のコードを追加します。
header('Access-Control-Allow-Origin:http://client.runoob.com');
2、複数のドメイン名へのアクセスを許可する複数のドメイン名を指定(http://client1.runoob.comを選択しますhttp://client2.runoob.comドメインをまたぐ場合は、http://server.runoob.com/server.phpファイルヘッダに以下のコードを追加します。
$origin = isset($_SERVER['HTTP_ORIGIN'])? $_SERVER['HTTP_ORIGIN'] : '';
$allow_origin = array(
'http://client1.runoob.com',
'http://client2.runoob.com'
);
if(in_array($origin, $allow_origin)){
header('Access-Control-Allow-Origin:'.$origin);
}
3、ドメイン名のすべてのアクセスを許可するすべてのドメイン名へのアクセスを許可するには、http://server.runoob.com/server.phpファイルヘッダに以下のコードを追加します。
header('Access-Control-Allow-Origin:*');
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。