問題
CSRF により、Django ビューへの投稿が妨げられています。
公式の django docsとこの質問の解決策に従っています: Django CSRF check failing with an Ajax POST request。すべてが正常にセットアップされるはずですが、実行時に失敗します。
私のセットアップは次のとおりです。
jQuery投稿方法:
var send_data = { 'name': place.name, 'address': address};
var csrftoken = $.cookie('csrftoken');
function csrfSafeMethod(method) {
// these HTTP methods do not require CSRF protection
return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}
$.ajaxSetup({
crossDomain: false, // obviates need for sameOrigin test
beforeSend: function(xhr, settings) {
if (!csrfSafeMethod(settings.type)) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
}
});
$.ajax({ url: '/results/',
type: 'POST',
data: send_data,
success: function(response) {
$('#results').html(response);
}
});
ジャンゴ ビュー:
def results(request):
return render(request, "stamped/restaurant.html")
Urls.py
urlpatterns = patterns('',
url(r'^$', views.home, name='home'),
url(r'results/', views.results, name='results'),
)
すべてがうまくいくはずです。私が見逃しているものについて何か考えはありますか?
私も疲れました:
CSRFが原因でdjangoのビューに$.postデータをjQueryできません
エラー出力:
アップデート:
この質問のコードは正しいです。ブラウザのキャッシュを空にする必要があるようです。