クロスドメイン Ajax リクエストを作成するときに正しいヘッダーを送信するように Angular を設定するにはどうすればよいですか?
私のために働いたもの:
CORS で動作するように Angular アプリケーションを構成するための答えを見つけるのに約 1 日を費やした後、ようやく機能するソリューションを思いつきました! サーバーを正しく設定したと仮定すると、クライアントで行う必要があるのは、アプリ構成のデフォルト ヘッダーを削除することだけです。
angular.module('myApp').config(['$httpProvider', function($httpProvider) {
delete $httpProvider.defaults.headers.common['X-Requested-With'];
});
X-Requested-With ヘッダーは、リクエストを AJAX リクエストとして識別します。デフォルトでは、クロス ドメインは許可されていません。したがって、デフォルト設定とBOOMからそれを削除するだけです! できます。
私たちのアプリケーションでは、再生バックエンド (1.2.5) を使用しています。これを機能させるために追加する必要があったコード行は次のとおりです。
ヘッダーを追加して、クロスドメイン リクエストを許可します。多くのブラウザーはこれらの機能をサポートしておらず、ヘッダーを無視することに注意してください。どのバージョンがそれらをサポートしているかについては、ブラウザのドキュメントを参照してください。
パラメータ: allowOrigin x-domain 呼び出しの実行を許可するドメインのコンマ区切りリスト、またはすべての " "。allowMethods 許可された HTTP メソッドのカンマ区切りのリスト、またはすべての場合は null。allowCredentials x-domain リクエストを実行するときにブラウザが Cookie を送信できるようにします。allowOrigin != " "の場合にのみブラウザによって尊重されます
Http.Response.current().accessControl("*", "GET,PUT,POST,DELETE,OPTIONS",false);