我试图在get_elem
的django方法上进行Ajax POST调用,我的ajax调用正常:Ajax call 200
问题是views.py
中的方法function csrfSafeMethod(method) {
// these HTTP methods do not require CSRF protection
return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}
$.ajax({
url : "get_elem/",
beforeSend: function(xhr, settings) {
if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
},
type:'POST',
dataType :'json',
data : {
elem_id : elem_id,
elem_typ : elem_type
}
}).done( function (data) {
console.log(data);
console.log('Success !');
});
没有被调用,当我在该方法上使用调试器时,进程不会在断点上停止。 (使用Pycharm)。
我的ajax电话是:
function call_elem(elem_id,elem_type){
views.py
}
如您所见,我已经拥有了cookie中的csrf令牌。 def get_elem(request):
if request.method == "POST":
if request.POST.get('elem_id') and request.POST.get('elem_type'):
elem_id = request.POST.get('elem_id')
elem_type = request.POST.get('elem_type')
if elem_type == 'GR' or elem_type == 'GRC':
elem = Groupe.objects.get(elem_id)
json.dumps(elem.__dict__)
else:
elem = {"error":"error..."}
return JsonResponse(elem)
中的方法是:
url.py
修改
url(r'^test/get_elem/$', views.get_elem, name='get_elem')
中的网址是:
{{1}}
但是我没有在JSON中返回元素,而是从我进行ajax调用的地方获得页面的HTML代码。
我之前在这段代码中已经完成了ajax调用,没有问题,我不知道为什么这次我无法访问该方法......
坦克适合你的时间。