3

ASP.NET WebAPIを使用してRESTAPIを設定し、次のようにCORSを有効にしました。

<system.webServer>
 <httpProtocol>
  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
    <add name="Access-Control-Allow-Headers" value="Content-Type" />
    <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
  </customHeaders>
 </httpProtocol>
</system.webServer>

jQuery ajax呼び出しはChromeとSafariで機能しますが、FirefoxではNetworkError: 405 Method Not Allowed

サイトがそうである場合、Firefoxには特に厳しい制限がありhttp://localhostますか?FFが必要とするWeb.Configの何かを見逃したことがありますか?

ありがとう!

## 編集:

動作しないのはOPTIONメソッドのようです。OPTIONメソッドはChromeでも許可されていませんが、ChromeはとにかくGETリクエストを作成します。FirefoxはOPTIONに405を与え、それからGETを行うことはありません。

これは、Chrome開発ツールからのリクエストです。

Chrome開発ツール

4

3 に答える 3

1

「*」の代わりに修正ドメインを使用してみてください。この場合の問題は解決しました <add name="Access-Control-Allow-Origin" value="http://localhost" />

于 2013-09-04T15:28:11.077 に答える
0

web.config の system.web -> handlers の下に次の行を追加してみてください。

<remove name="OPTIONSVerbHandler" />

このデフォルト ハンドラは、オプション リクエストをブロックする可能性があります

于 2013-03-18T17:06:12.913 に答える
0

私も同じ状況で走りました。options-keyword で 405 HTTP エラーが発生しました。解決策は、IISExpress (開発アプリケーション サーバー) から ISS 7.x に切り替えることでした。開発用 Web サーバーを使用する場合、(もちろん) 重大な制限があります。これはあなたが私のために言及した問題を解決しました。

于 2013-08-03T07:52:50.827 に答える