この記事では、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 チュートリアルに興味のある友人に役立つことを願っています。