0

問題

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できません

DjangoビューへのJquery Ajaxポスト

エラー出力:

ここに画像の説明を入力

アップデート:

この質問のコードは正しいです。ブラウザのキャッシュを空にする必要があるようです。

4

2 に答える 2