質問
クロスドメインのリソース共有に関する以前に共有された記事で、ドメインを越えるときに Cookie を送信したい場合は、access-control- allow-origin を * に設定することはできません。要求された Web ページと一致する明確なドメイン名を指定する必要があります。このプロジェクトの開発中に他の人たちと協力しているときに、このような問題に遭遇しました。
解決策
一般的に、バックグラウンドで cors クロスドメイン リソース共有を使用すると、次のようなアクセスが行われます。 control-allow-origin にアクセスするドメイン名を設定するだけですが、バックグラウンドの連携が必要となり、ブラウザによっては対応していない場合があります。
パートナーのバックエンドとの連携に基づいて、nginx 方向プロキシを使用してブラウザの同一オリジン ポリシーを満たし、クロスドメインを実現します
実装方法
リバース プロキシの概念
リバース プロキシ方法とは、プロキシ サーバーを使用してインターネットを受け入れることを指します。接続要求は内部ネットワーク上のサーバーに転送され、サーバーから得られた結果はインターネット上の接続を要求したクライアントに返されますが、このときプロキシサーバーは外部からはサーバーのように見えます。リバース プロキシ サーバーはクライアントからは元のサーバーとして見えるため、クライアントは特別な設定を行う必要はありません。クライアントは通常のリクエストをリバース プロキシの名前空間 (name-space) 内のコンテンツに送信します。その後、リバース プロキシはリクエストの転送先 (元のサーバー) を決定し、取得したコンテンツをクライアントに返します。次のようになります。コンテンツは次のようになります。独自のオリジナルコンテンツ。
nginx リバース プロキシを使用してクロスドメインを実現する手順
パッケージをダウンロードして nginx 環境を構築する
nginx 構成ファイルを変更し、nixn.conf ファイルを見つけて、関連する構成を変更します
http { include mime.types; default_type application/octet-stream; sendfile on; server { listen 8000; #监听8000端口,可以改成其他端口 server_name localhost; # 当前服务的域名 location /wili/api/ { proxy_pass http://chick.platform.deva.wili.us/api/; #添加访问路径录为/will/api的代理配置 proxy_http_version 1.1; } location / { proxy_pass http://localhost:8001; proxy_http_version 1.1; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
構成の説明:
設定情報から分かるのですが、nginxにlocalhostのポート8000をリッスンさせ、ウェブサイトaとウェブサイトbはローカルホストのポート8000経由でアクセスしています。
「will/api」で始まるアドレスが処理のために「」に転送されるように、「/will/api」へのアクセスを特別に構成しました。
アクセス アドレスの変更
nginx を構成したので、すべてのアクセスは Web サイトの元のアドレス (a) ではなく nginx を経由する必要があります。ウェブサイト ローカルホスト:8001、b ウェブサイト)。したがって、Web サイト a のリクエスト インターフェイスを変更して置き換える必要があります。次に、nginx を起動し、設定された 8000
以上がNginx リバース プロキシを使用してクロスドメインの問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。