お世話になっております。
表題の通りですが、Herokuの本番環境にてPOSTをすると403エラーが発生します。
無料のプランで、Cloudflareを噛ませているので、それが原因かと思い調べてみるも、
なかなか要領を得ず、、、
解決方法をご教授頂けますと幸いです。
POST関数の冒頭にprint文を仕込んでみたところ、何もprintされませんでした。
ので、関数内の記述の問題ではないようです。
エラー文によると、CSRFの検証エラーのようです。
Forbidden (Origin checking failed - ドメイン名 does not match any trusted origins.)
無料プランで独自ドメインを使いたいので、
cloudflareを通してssl化をしており、
これが原因なのかなーとは何となく勘づいてはいるのですが、、、
まず初めに、CORS_ORIGIN_WHITELISTとCORS_ALLOWED_ORIGINSを設定したのですが、状況は変わらず。
その後、CSRF_TRUSTED_ORIGINSに該当ドメインを設定した所うまくいったので、おそらくコレなのかなーと思いました。
うまくいって良かったです。
does not match any trusted originsとエラーが発生したら、CSRF_TRUSTED_ORIGINSを追加するといいんですね。
勉強になりました。
CSRF_TRUSTED_ORIGINSでドメインを設定した所、エラーを吐かなくなりました!
いつも助けて頂き、本当にありがとうございます!!!
ttps://self-methods.com/drf-cors-headers/
を参照して、corsheadersを追加しましたが、やはり403(csrfエラー)を吐きます。。
cloudflare側のキャッシュ等の問題もあるかなーと思い、時間をあけて再トライをしてみようかと思います。
CSRFエラーであれば、corsheadersを導入して、ドメインを許可してみてください。
DEBUGをTrueにして、Herokuのログにエラーメッセージはありますでしょうか?
post関数にprint文を仕込んで、どこまでが正常に動いているかを確認してみてください。