Ben ajax çağrısı aşağıda gibi yapıyorum:Yasak (CSRF eksik veya yanlış belirteç.):
var data_dict = {'user':{{ user.id }}, 'bookId':that.id, 'csrfmiddlewaretoken': '{{ csrf_token }}'};
$.ajax({
type: 'POST',
url:"/issuebook",
data:data_dict,
processData: false,
contentType: false,
success:function(response)
{
}
});
urls.py: Ben alıyorum
urlpatterns = [
url(r'^$',views.checkLogin,name='checklogin'),
url(r'^mylibrary/(?P<pk>\d+)/(?P<user_name>[\w\-]+)$',login_required(views.MyLibrary.as_view()),name='mylibrary'),
url(r'^centrallibrary/(?P<pk>\d+)/(?P<user_name>[\w\-]+)$',login_required(views.CentralLibrary.as_view()),name='centrallibrary'),
url(r'^issuebook$',login_required(views.IssueBookView.as_view()),name='issuebook'),
]
"Yasak (CSRF belirteci eksik veya yanlış.): Ajax çağrısında hata. Bu hata ajax işlevinde processData
ve contentType
seçenekleri kaynaklanır
var data_dict = {'user':{{ user.id }}, 'bookId':that.id, 'csrfmiddlewaretoken':'fSSdu8dJ4FO6FvDz8eU5ISzOewRYyGbC'};
$.ajax({
type: 'POST',
url:"/issuebook",
data:data_dict,
contentType: false,
success:function(response)
{
}
});
Sadece 'c {{csrf_token}}' 'csrfmiddlewaretoken 'dizesini geçtiniz ve ajax çağrınız göreceli olanla eşleşemiyor. Bunun yerine, çağrı fonksiyonunuzda hsml'den "csrf" jetonunun hash değerini manuel olarak alabilirsiniz. – Kasramvd
İşlenen HTML şablonunu da soruna ekleyin. – v1k45
@ v1k45 Düzenlenen soruya işlenen {{csrf_token}} ekledim. Bunun dışında, şablonda az sayıda dize değeri oluşturuyorum. – ankit