Django から 403 エラーが発生し続けます。
CSRF 保護を使用するように settings.py をセットアップし、テンプレートで csrf_token トークンを使用しました。
HTMLヘッダーの直後に含めたJSファイルは次のとおりです:http://bpaste.net/show/87791/
Firebug を使用して、CSRF Cookie があることを確認できます。ページの後半で、ユーザーが次のコードをトリガーするボタンをクリックします。
myFunction: function() {
$.ajax({
type: 'POST',
url: window.localtion.href + 'myajaxview',
async: false
});
}
このページを表示するために、TemplateView から継承する単純なクラス ベースのビューを使用しています。「myajaxview」は View と JSON Mixin から継承しています。ただし、django は CSRF トークンを検証できないため、そのコードは実行されません。
ajax が POST ヘッダーを含むトークンを本来のように送信していないように思えます。または、何か不足していますか?
編集: $.ajax() POST 関数への呼び出しの直前に $.ajaxSetup 呼び出しを移動し、機能しました。別の場所に移動しようとしましたが、失敗しました。この問題は、Django よりも Ajax に関連していると思います。だから、私の質問はまだそこにあります. $.ajaxSetup 呼び出しを各 $.ajax 呼び出しの前に置きたくありません. したがって、これは単なる回避策であり、解決策を求めています。