フルスタックチャンネル
サインアップサインアップ
ログインログイン
利用規約プライバシーポリシーお問い合わせ
Copyright © All rights reserved | FullStackChannel
解決済
Herokuの本番環境にてPOSTをすると403エラーが発生
Django
デプロイ
Heroku
atnek
2022/08/14 15:33

お世話になっております。

表題の通りですが、Herokuの本番環境にてPOSTをすると403エラーが発生します。

無料のプランで、Cloudflareを噛ませているので、それが原因かと思い調べてみるも、
なかなか要領を得ず、、、

解決方法をご教授頂けますと幸いです。

回答 7件
login
回答するにはログインが必要です
atnek
約3年前

POST関数の冒頭にprint文を仕込んでみたところ、何もprintされませんでした。
ので、関数内の記述の問題ではないようです。

エラー文によると、CSRFの検証エラーのようです。
Forbidden (Origin checking failed - ドメイン名 does not match any trusted origins.)

無料プランで独自ドメインを使いたいので、
cloudflareを通してssl化をしており、
これが原因なのかなーとは何となく勘づいてはいるのですが、、、

1
atnek
約3年前

まず初めに、CORS_ORIGIN_WHITELISTとCORS_ALLOWED_ORIGINSを設定したのですが、状況は変わらず。

その後、CSRF_TRUSTED_ORIGINSに該当ドメインを設定した所うまくいったので、おそらくコレなのかなーと思いました。

1
はる@講師
約3年前

うまくいって良かったです。

does not match any trusted originsとエラーが発生したら、CSRF_TRUSTED_ORIGINSを追加するといいんですね。

勉強になりました。

1
atnek
約3年前

CSRF_TRUSTED_ORIGINSでドメインを設定した所、エラーを吐かなくなりました!

いつも助けて頂き、本当にありがとうございます!!!

1
atnek
約3年前

ttps://self-methods.com/drf-cors-headers/

を参照して、corsheadersを追加しましたが、やはり403(csrfエラー)を吐きます。。

cloudflare側のキャッシュ等の問題もあるかなーと思い、時間をあけて再トライをしてみようかと思います。

はる@講師
約3年前

CSRFエラーであれば、corsheadersを導入して、ドメインを許可してみてください。

1
はる@講師
約3年前

DEBUGをTrueにして、Herokuのログにエラーメッセージはありますでしょうか?

post関数にprint文を仕込んで、どこまでが正常に動いているかを確認してみてください。

1