私はREST APIにリクエストしようとしています。これはCORS要求です。 私のフロントエンド:角1.5(localhostを:3000) マイバックエンド:ジャンゴ(。***** ddns.net)CORSプリフライトリクエスト(DjangoとAngular)
だから私はコードを共有したくない誰かによって作られたサービスを(使用していますこれは、実際のリクエスト(プリフライト)の前にOPTIONSリクエストを行っていることを意味します。正確には、UIルーターの状態定義の解決オプションを使用して呼び出します。
これを行うにはDjangoにCORSがあります。 Google Chromeで取得するエラーです:
XMLHttpRequest cannot load https://****.net/api/myprofile. The request was redirected to 'https://*****.net/punchclock/api/myprofile/', which is disallowed for cross-origin requests that require preflight.
コントローラで古典的な$ httpリクエストを行うと、働いている。
この要求は私のジャンゴを受け取っです:
+6655:5740d0f9:10|
OPTIONS /punchclock/api//myprofile HTTP/1.0|
Host:*****.net|
Connection:close|
Pragma:no-cache|
Cache-Control:no-cache|
Access-Control-Request-Method:GET|
Origin:http%3a//localhost%3a3000|
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36|
Access-Control-Request-Headers:accept, authorization|
Accept:*/*|
Referer:http%3a//localhost%3a3000/dashboard|
Accept-Encoding:gzip, deflate, sdch|
Accept-Language:fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,es;q=0.2
-6655:5740d0f9:10
そして、これは私が、私は郵便配達でそれを行う場合には(私はOPTIONS要求を行うとき、それは郵便配達で作業している)を得る反応である
Access-Control-Allow-Headers →x-requested-with, content-type, accept, origin, authorization, x-csrftoken
Access-Control-Allow-Methods →GET, POST, PUT, PATCH, DELETE, OPTIONS
Access-Control-Allow-Origin →*
Access-Control-Max-Age →86400
Allow →GET, HEAD, OPTIONS
Connection →keep-alive
Content-Type →application/json
Date →Sat, 21 May 2016 21:15:02 GMT
Server →nginx/1.6.2
Transfer-Encoding →chunked
Vary →Accept
X-Frame-Options →SAMEORIGIN
を
私はそれがジャンゴの側の問題だと思います。あなたは何か考えている...(私はCORSについてたくさん学ぶ必要があります)
私はあなたが言ったことをしました。最初に、私はクロムデバッガをチェックしました。これは私が持っているものです: '最初のリクエスト、オプションは200を返す リクエスト方法:オプション ステータスコード:200 OK リモートアドレス:**。***。* **。***:*** ' 2番目のもの: リクエストURL:https://*****.ddns.net/api/myprofile リクエスト方法:GET ステータスコード:301恒久的に移動しました リモートアドレス:**。***。***。***:*** ' また、postman(+インターセプタープラグイン)を使用してすべてのヘッダーを追加しようとしました。 – NOaMTL
OPTIONSから200を取得している場合、問題はCORSではありません。実際のリクエストでは301はリダイレクトと考えられますので、サーバーサイドの担当者がお手伝いできるはずです。または、リダイレクトを取得したときに新しいURLに2回目のリクエストをしてください –
私はすべてのヘッダーを使用して、郵便配達員からの取得をシミュレートしようとしましたが、それは200です...私は混乱しています。 そして私はまた、改ざんされたURLにOPTIONSとGETを直接実行しようとしましたが、私は同じ問題があります。 – NOaMTL