0

私の Django テンプレートには、POST フォームがあります。タグ {% csrf_token %} が含まれています。このフォームを正常に送信すると、すべて正常に機能します。ただし、Javascript/Jquery を介してフォームの入力値を変更する必要があります。

$('input').val(id);

これを行うと、フォームを送信したときに「CSRF 検証に失敗しました」というエラー メッセージが表示されます。私は Javascript 経由でフォームを送信しますが、値を動的に変更しない限り、これは問題ではありません。

Python 関数の上に @csrf_exempt を記述して、これを「解決」しています。ただし、これはセキュリティをスキップします。別の方法はありますか?

4

1 に答える 1

0

コマンド$('input').val(id);は、見つかったすべての入力エントリを上書きするため、非表示のcsrf_token入力はその値を失います。より具体的なセレクターを作成してみてください。例えば:

$('input[name=change-me]').val(id);
于 2012-10-08T15:41:26.787 に答える