web-dev-qa-db-ja.com

XMLHttpRequestをロードできず、プリフライトの応答に無効なHTTPステータスコード405が含まれています

私はionic framework and angularjsを使用しています。ログを表示するためにchromeを使用していますが、ここでログインページを実行しています。ユーザーが入力したデータを投稿しようとしています提供していますが、このようなエラーが発生しています。

 OPTIONS http://aflaree.com/qrcodeservice/Service1.svc/login 

これは次のエラーXMLHttpRequest cannot load http://aflaree.com/qrcodeservice/Service1.svc/login Response for preflight has invalid HTTP status code 405いくつかのブログを読んだ後、私はそれを試したajaxリクエストを許可するCORS拡張があると考えていますが、この2つのエラーが表示される理由を見つけることができません。ここに私のコードがあります

https://plnkr.co/edit/Dz0aFsLqoQcnCxht00z3?p=preview

私のコードはデバイスで正常に動作しますが、chromeでエラーが発生しています

13
Mohan Gopi

CORSは、実際にAJAX呼び出しでサーバーに2つの要求を行う必要があることを指定します(カスタムヘッダーの送信など、特定の条件が適用される場合)。

最初のリクエスト(OPTIONSメソッドを持つリクエスト)はプリフライトと呼ばれ、完全なリクエストをサーバーに送信しても安全かどうかを確認するために使用されます。サーバーからの応答には、有効なAccess-Control-Allow-OriginクライアントのURLを含むヘッダーまたは*

サーバー(クライアントではなく)は、CORSをサポートする必要があるサーバーです。 .Netを使用しているようですので、IISの構成方法について here をご覧ください。

CORSの詳細については、こちらをご覧ください こちら

17
yorch

クロムを使用している場合は、「Allow-Control-Allow-Origin」プラグインを入手してください。これにより、すべてのCORSエラーを無視できます。

ionicにはCordovaプラグイン "cordova-plugin-whitelist"があるため、モバイルで動作します。 "config.xml"にはデフォルトで行が表示されます。つまり、アプリはURL。

残念ながら、ブラウザでテストする場合、cordovaプラグインはアクティブではありません。

13
TheAppchemist

IOSデバイスの場合は、使用されているプロトコルも確認してください。 HTTPの代わりにHTTPSを使用すると、問題が解決しました。

0
Gaurav Barge