ホームページ > バックエンド開発 > PHPチュートリアル > フロントエンドとバックエンドを分離する場合、クロスドメインの問題をどのように解決しますか?

フロントエンドとバックエンドを分離する場合、クロスドメインの問題をどのように解決しますか?

WBOY
リリース: 2016-09-23 03:30:08
オリジナル
1264 人が閲覧しました

現在、ブログに取り組んでいるときは、フロントエンドとバックエンドの分離を使用し、フロントエンドとバックエンドのロジックを 2 つの別個のリポジトリに配置し、2 つのサーバーにデプロイすることを検討しています。

私のメインのドメイン名は: godtail.cn(目前使用ghost、新しいブログを書いています...)

  • フロントエンドのドメイン名は: www.godtail.cn | godtail.cn | m.godtail.cn

  • バックエンドのドメイン名は: api.godtail.cn

しかし、通信中に、跨域というプロンプトが表示されることがわかりました。そうですね、以前は、メインのドメイン名が同じ場合、ドメインを越えることはできないと考えていました(同じドメイン名と異なるポートもドメインを越えます)。

現在、私が知っている解決策は 2 つあります:

  1. JSONP を使用する 正直に言うと、JSONP を使用するとセキュリティ上の問題が発生したり、効率が低下したりする気がします (これら 2 つの点は私の推測にすぎません)。
    推測の理由:

    • どのソースからでもアクセスできます。js インジェクションはありますか?

    • バックエンドとフロントエンドの両方を JSONP で処理する必要があります。 (書くのは楽しくないので、すべてのリクエストは JSONP を使用する必要があります)。

  2. バックエンドにクロスドメインヘッダーを追加します

    • フロントエンド ドメイン名が多数ある場合、多くのドメイン名を追加して維持する必要があります。他のシステムがインターフェイスを要求する必要がある場合、クロスドメイン ヘッダーを追加しますか?対処するのは簡単ではありません...

より良い解決策を持っている人はいますか?

================【9-22 17:25】======================

さらに、クロスドメインヘッダーを設定すると、内部通話のみのIPを設定できます。外部呼び出しが必要な場合は、古いバージョンのブラウザとの互換性の問題があるかどうかもわかりません。

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