私はWebアプリケーションを開発しています。私はフロントエンドフレームワークとしてAngunlar 2を、バックエンドフレームワークとしてCodeIgniter 3を使用しています。私はAngular-CLIを使用しているので、Angularアプリケーションはポート4200で動作し、「サーバー側」はポート80で動作します。同じコンピュータでAngular 2とPHPのクロスドメイン通信を避ける
AngularからPHPへの投稿リクエストをしようとすると、異なるポートが原因でドメイン間の要求が発生する可能性があります。 Chromeの[ネットワーク]タブで確認したところ、2つのリクエストが完了したことがわかりました(1つはオプション、もう1つは投稿自体)。
私の問題は、投稿体を受け取ることができないということです(私はContent-Lenghtを私の見出しに変更しており、常に実行時にあります)。
私が設定したヘッダは以下のとおりです。
header('Content-Type: text/plain; charset=utf-8');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST');
header('Access-Control-Allow-Headers: Content-Type');
質問は次のとおりです。ここでは、クロスドメインを回避する方法はありますか?当然、私はポート80でサービスを開始しようとしましたが、それは忙しいです。クロスドメインを避ける方法がない場合は、誰かが私にこのことを続ける方法を教えてください。
おかげ
私はリクエストを得ることに問題はないと言及しなければなりません。問題は私が投稿要求にあり、問題は私がボディに何も受け入れていないということです。(content-lenghtは2です。私はそれを変更することはできません) – user3368457
同じ問題を抱えている人には、@ Raiper34が書いた解決策は完璧です。それでも問題が解決しない場合は、$ _POST配列が設定されていない可能性があります。これに対する解決方法は次のとおりです。https://stackoverflow.com/a/14794856/3368457 – user3368457