私は単純な django アプリを実行していますが、応答を投稿できるように csrftoken が適切に設定されていることを確認する必要がありました。
ローカルでテストし、JavaScript のデバッグを確認すると、問題なく動作し、csrf が適切にアタッチされています。しかし、Heroku で実行されているまったく同じブレークポイントを見ると、getCookie 関数全体が空白を返します。参考までに、私はDjango Docsの標準の getCookie 関数を使用しています:
// using jQuery
function getCookie(name) {
var cookieValue = null;
if (document.cookie && document.cookie != '') {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = jQuery.trim(cookies[i]);
// Does this cookie string begin with the name we want?
if (cookie.substring(0, name.length + 1) == (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
var csrftoken = getCookie('csrftoken');
他の jQuery と JavaScript はページ上で正常に動作していますが、この場合、document.cookie は完全に空です。
さまざまなドメイン (herokuapp.com、domain_name など) から試してみましたが、すべて同じです。document.cookie が空になるのはなぜですか? 何かがそこにあるべきではありませんか?