web-dev-qa-db-ja.com

CORS Django 'Access-Control-Allow-Origin'

CORSリクエストを機能させようとしていました。次のJSコードでこのエラーが発生します:XMLHttpRequest cannot load http://localhost:65491/?token=u80h9kil9kjuu02539buak4r6n&user=~me. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:50303' is therefore not allowed access.

これはJSコードです:

$.ajax({
     url: "http://localhost:60906/",
     data: {token : 'u80h9kil9kjuu02539buak4r6n', user : '~me'},
     type: "GET",
     crossDomain: true,
     success: function( response ) {
         alert('Success!' + response);
         var context = response;
        }
  });

Chromeのdevtoolsを使用してネットワークを見ると、'Access-Control-Allow-Origin'ヘッダーがないことがわかります。しかし、サイトを手動でロードすると、存在します!

次のコードを使用してヘッダーを設定しました。

response = JsonResponse(simpleWeek)
response['Access-Control-Allow-Origin'] = '*'
return response

助けを期待しています!

6
David Western

No 'Access-Control-Allow-Origin' header is present on the requested resource.これは、サーバーアプリケーションがクロスOriginリクエストを受け入れるように調整する必要があることを意味します。セキュリティ上の理由により、クロスオリジンリクエストはデフォルトでは機能しません。それらを有効にする必要があります。

Djangoの場合、これのために十分な量の設定が含まれた保守パッケージがあります: https://github.com/ottoyiu/Django-cors-headers/

7
T. Opletal

2時間のトラブルシューティングの後、解決策を見つけました:[〜#〜] typo [〜#〜] url。 2回確認してください。問題が解決する可能性もあります。

3
Seyhak Ly