1

データを取得するために、AngularJS と Django-Tastypie に基づく REST API を使用して webapp を開発しています。

ajax リクエストを実行できるようにするために、django-cors-header フレームワーク ( https://github.com/ottoyiu/django-cors-headers ) を使用して django で Cross Origin Resource Sharing を有効にしましたが、chrome インスペクターでプリフライトされていることに気付きましたメインリクエストがほぼ即座にキャンセルされる前に送信されたリクエスト(OPTIONSリクエスト)は、Djangoサーバーでこれをログに記録しました:"OPTIONS /api/airport/19643 HTTP/1.1" 301

'X-Requested-With'ヘッダーからパラメーターを削除することを提案するこれに関するいくつかの投稿を見つけました( $http.get は Access-Control-Allow-Origin では許可されていませんが、 $.ajax は許可されています) が、これは GET 要求の問題のみを解決します。したがって、PUT または POST リクエストを送信しようとすると、プリフライトされたリクエストが送信され、キャンセルされます。

CORS を有効にしたときにインスペクターに表示されるのは次のとおりですが、ヘッダーから前のパラメーターを削除しません。 ここに画像の説明を入力

PUT リクエストでも同じエラーが発生します。

どこに問題があるのか​​ よくわからないので、誰かが私を正しい方向に向けてくれることを願っています.

どうもありがとう

4

2 に答える 2

0

ローカルテストでCORSを許可するために、クロムのコマンドラインオプションの下で試してみてください:

Chrome.exe --allow-file-access-from-files

注 : Chrome を開いてはいけません。このコマンドを実行すると、chrome が自動的に開きます。

コマンド プロンプトでこのコマンドを入力している場合は、Chrome のインストール ディレクトリを選択してから、このコマンドを使用します。

于 2013-08-07T12:58:33.177 に答える