ホームページ >バックエンド開発 >PHPチュートリアル >フロントエンドとバックエンドを分離する場合、クロスドメインの問題をどのように解決しますか?
現在、ブログに取り組んでいるときは、フロントエンドとバックエンドの分離を使用し、フロントエンドとバックエンドのロジックを 2 つの別個のリポジトリに配置し、2 つのサーバーにデプロイすることを検討しています。
私のメインのドメイン名は: godtail.cn
(目前使用ghost
、新しいブログを書いています...)
フロントエンドのドメイン名は: www.godtail.cn
| godtail.cn
| m.godtail.cn
バックエンドのドメイン名は: api.godtail.cn
しかし、通信中に、跨域
というプロンプトが表示されることがわかりました。そうですね、以前は、メインのドメイン名が同じ場合、ドメインを越えることはできないと考えていました(同じドメイン名と異なるポートもドメインを越えます)。
JSONP を使用する 正直に言うと、JSONP を使用するとセキュリティ上の問題が発生したり、効率が低下したりする気がします (これら 2 つの点は私の推測にすぎません)。
推測の理由:
どのソースからでもアクセスできます。js インジェクションはありますか?
バックエンドとフロントエンドの両方を JSONP で処理する必要があります。 (書くのは楽しくないので、すべてのリクエストは JSONP を使用する必要があります)。
バックエンドにクロスドメインヘッダーを追加します
フロントエンド ドメイン名が多数ある場合、多くのドメイン名を追加して維持する必要があります。他のシステムがインターフェイスを要求する必要がある場合、クロスドメイン ヘッダーを追加しますか?対処するのは簡単ではありません...
================【9-22 17:25】======================
さらに、クロスドメインヘッダーを設定すると、内部通話のみのIPを設定できます。外部呼び出しが必要な場合は、古いバージョンのブラウザとの互換性の問題があるかどうかもわかりません。