詳細: http://www.webyang.net/Html/web/article_135.html
これは、最新の W3C 標準、
クロスオリジン リソース共有
で HTTP クロスドメイン リクエストが実装される方法です。簡単に言うと、クロスドメイン ターゲット サーバーは一連のヘッダーを返し、これらのヘッダーを使用してクロスドメインに同意するかどうかを制御する必要があります。
これらのヘッダーは次のとおりです:
4 構文
4.1 Access-Control-Allow-Origin HTTP 応答ヘッダー
4.2 Access-Control-Max-Age HTTP 応答ヘッダー
4.3 Access-Control-Allow-Credentials HTTP 応答ヘッダー
4.4 Access-Control- Allow-Methods HTTP レスポンス ヘッダー
4.5 Access-Control-Allow-Headers HTTP レスポンス ヘッダー
4.6 Origin HTTP リクエスト ヘッダー
4.7 Access-Control-Request-Method HTTP リクエスト ヘッダー
4.8 Access-Control-Request-Headers HTTP リクエスト ヘッダー
はこちら Request パッケージと Response パッケージにいくつかあります。
最も機密性の高いヘッダーは Access-Control-Allow-Origin ヘッダーです。これは、W3C 標準でクロスドメイン リクエストを通過できるかどうかを確認するために使用されます。 (アクセス制御チェック)
したがって、ドメインを越える必要がある場合、解決策は、リソースのヘッダーに Access-Control-Allow-Origin を追加して、承認するドメインを指定することです。ここでは関係ありません。指定するだけです。アスタリスク * を付けると、どのドメインでも私にアクセスできます H.
特定の操作方法は、さまざまな入り口を通じて制御できます:
1. PHP コード制御:
1 | <ol><li value= "1" ><span><?</span><span>php</span></li><li><span>header</span><span>(</span><span> "Access-Control-Allow-Origin: *" </span><span>);</span></li><li><span>?></span></li></ol>
|
ログイン後にコピー
2. HTML ヘッダー コントロール:
1 | <ol><li value= "1" ><span><meta</span><span></span><span>http-equiv</span><span>=</span><span> "Access-Control-Allow-Origin" </span><span></span><span>content</span><span>=</span><span> "*" </span><span>></span></li></ol>
|
ログイン後にコピー
3. nginx 設定:
1 2 3 4 5 6 7 8 9 | <ol>
<li value= "1" >
<span>location </span><span>/</span><span></span><span>{</span>
</li>
<li>
<span> add_header </span><span>Access</span><span>-</span><span>Control</span><span>-</span><span>Allow</span><span>-</span><span>Origin</span><span></span><span>*;</span>
</li>
<li><span>}</span></li>
</ol>
|
ログイン後にコピー
は、誰かが nginx.conf に次の 3 つの文を追加することをインターネットで見ました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <ol>
<li value= "1" ><span>#授权从other.subdomain.com的请求</span></li>
<li>
<span>add_header </span><span> 'Access-Control-Allow-Origin' </span><span></span><span> 'http://other.subdomain.com' </span><span>;</span>
</li>
<li><span>#当该标志为真时,响应于该请求是否可以被暴露</span></li>
<li>
<span>add_header </span><span> 'Access-Control-Allow-Credentials' </span><span></span><span> 'true' </span><span>;</span>
</li>
<li><span>#指定请求的方法,可以是GET,POST等</span></li>
<li>
<span>add_header </span><span> 'Access-Control-Allow-Methods' </span><span></span><span> 'GET' </span><span>;</span>
</li>
</ol>
|
ログイン後にコピー
でも、私が自分でテストしたところ、その必要はありませんでした。さらに、特定のドメイン名を指定する場合は、* を変更するだけです。これは通常、オープン サイトの第 2 レベルのドメイン名です。
上記では、AJAX クロスドメイン リクエストを実装するための Nginx について、内容の側面も含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。