クロスドメイン リクエストを防ぐには、オリジン ドメインとターゲット ドメインがまったく同じである必要があります: ホスト、ドメイン、およびポート (同じオリジン ポリシー)。ただし、とにかく CORS を防ぐためのオプションがいくつかあります。
- ウェブサイトと API を同じドメインに配置する - ちょっと明白 ;)
- ある種のサーバーサイド プロキシ スクリプト (PHP、Node.js、または好きなもの) を作成し、curl または API に似たものを介してリクエストをルーティングします。これにより、OPTIONS ヘッダーが回避されるはずですが、別の HTTP 要求 (AJAX <-> Web サイト httpd <- > API httpd) が必要になります。
- 同様の解決策は、Apache をリバース プロキシとして使用することです ( howto here )。スクリプト ソリューションと同様に、これも 2 つの HTTP 要求になりますが、リバース プロキシのほうがオーバーヘッドが少ないと思います。
- JSONPを使用することもできますが、API はそれをサポートする必要があり (そのため、Web サイト <->API 通信を再実装する必要がある場合があります)、APIはもう RESTfulではありません (気にする場合)。
スクリプト ソリューションはあまりにも不器用なので、方法 1 または方法 3 のいずれかを選択します ;) また、API と Web サイトを異なるドメインで実行する必要があるかどうかを確認することもお勧めします。通常、OPTIONS ヘッダーはあまりオーバーヘッドを引き起こさないため、最初にコードの他の部分を最適化することを検討してください。
Web サイトと API を 1 つのドメインに配置し、API のデータベースのみを別のサーバーに配置することはできますか? ただのアイデア...