0

サーバーで nodejs を使用し、ポート 5000 でローカルに実行されているクライアントで angularjs を使用するフロントエンド Web アプリがあります。クライアント コードは、ローカルでも実行されているが IIS 6.2 でホストされている別のポートで実行されている別の Web API サービスに ajax 要求を行う必要があります。 . これにより、ブラウザがプリフライト リクエストを作成しようとしているクロスオリジン リクエストになります。ただし、プリフライトは失敗し、ajax エラー ハンドラーが呼び出され、応答のステータス コードは -1 であり、Chrome コンソールはプリフライト チェックが失敗したことを示し、おそらく「プリフライト リクエストへの応答がアクセス制御を通過しません」という標準エラー メッセージが表示されます。チェック: 要求されたリソースに「Access-Control-Allow-Origin」ヘッダーが存在しません。オリジン ' https://localhost:5000' したがって、アクセスは許可されません。応答の HTTP ステータス コードは 500 でした。

私の知る限り、Web API サービスで CORS を有効にしています。これが私の Application_Start メソッドの最初の部分です。

var corsAttr = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(corsAttr);

config.MapHttpAttributeRoutes();
// etc...

この正確なセットアップは同僚のマシンでうまく機能しているので、特に私のマシンで何かが起こっています. 私は困惑しています、何が起こっているのかについてのアイデアはありますか? どこかで何かが間違って設定されていると思います。

4

1 に答える 1

0

ワイルドカード ('*') の使用を避け、これを試してみてください。

var corsAttr = new EnableCorsAttribute(" https://localhost ", " ", " ");

ワイルドカードをドメインに置き換えるだけです。

CORS を許可するには?

于 2016-04-29T16:36:28.613 に答える