PHP Ajax のクロスドメイン問題に対する最良の解決策

WBOY
リリース: 2016-07-28 08:29:38
オリジナル
881 人が閲覧しました

この記事では、Access-Control-Allow-Originを設定することでクロスドメインを実現しています。

例: クライアントのドメイン名は client.runoob.com で、要求されたドメイン名は server.runoob.com です。

ajax を使用して直接アクセスすると、次のエラーが発生します:

<span>XMLHttpRequest</span><span> cannot load http</span><span>:</span><span>//server.runoob.com/server.php. No 'Access-Control-Allow-Origin' header is present on the requested resource.Origin 'http://client.runoob.com' is therefore not allowed access.</span>
ログイン後にコピー
<p>1、允许单个域名访问</p><p>指定某域名(http://client.runoob.com)跨域访问,则只需在http://server.runoob.com/server.php文件头部添加如下代码:</p><pre class="brush:php;toolbar:false"><span>header</span><span>(</span><span>'Access-Control-Allow-Origin:http://client.runoob.com'</span><span>);</span>
ログイン後にコピー

2. 複数のドメイン名によるアクセスを許可する

複数のドメイン名を指定します (http://client1.runoob.com、http://client2) .runoob.com など) クロスドメイン アクセスの場合は、http://server.runoob.com/server.php ファイルのヘッダーに次のコードを追加するだけです:

<span>$origin </span><span>=</span><span> isset</span><span>(</span><span>$_SERVER</span><span>[</span><span>'HTTP_ORIGIN'</span><span>])?</span><span> $_SERVER</span><span>[</span><span>'HTTP_ORIGIN'</span><span>]</span><span>:</span><span>''</span><span>;</span><span>$allow_origin </span><span>=</span><span> array</span><span>(</span><span>'http://client1.runoob.com'</span><span>,</span><span>'http://client2.runoob.com'</span><span>);</span><span>if</span><span>(</span><span>in_array</span><span>(</span><span>$origin</span><span>,</span><span> $allow_origin</span><span>)){</span><span>    header</span><span>(</span><span>'Access-Control-Allow-Origin:'</span><span>.</span><span>$origin</span><span>);</span><span>}</span>
ログイン後にコピー

3. アクセスを許可するにはすべてのドメイン名から

すべてのドメイン名からのアクセスを許可するには、http://server.runoob.com/server.php ファイル ヘッダーに次のコードを追加するだけです:

<span>header</span><span>(</span><span>'Access-Control-Allow-Origin:*'</span><span>);</span>
ログイン後にコピー

上記では、関連する側面も含め、PHP Ajax のクロスドメイン問題に対する最適な解決策を紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート