Я пытаюсь отправить данные на сервер и использовать с AJAXвзаимодействие Джанго и Ajax
function stats(e){
jQuery.ajax({
type: "POST",
url:"stats",
data:{'csrfmiddlewaretoken': document.getElementsByName('csrfmiddlewaretoken')[0].value,
'test':{}},
success: function(data) {alert("Congratulations!"+data);},
error: function(data) {
alert("Please report this error: "+data.responseText);}
});
}
функцию в views.py:
def stats(request):
if request.is_ajax():
if request.user.is_authenticated():
if request.POST:
return HttpResponse(request.POST['test'])
else:
return HttpResponse("post_no_exists")
else:
return HttpResponse("no authenticate")
else:
raise Http404
Джанго поднять ключ „тест“ MultiValueDictKeyError»не найденный в QueryDict '. Когда я меняю «тест»: {} -> "test": 1 он выполняется. Какая у меня ошибка?
Почему, если я пишу "тест": { "A": 1}, request.POST [ 'тест'] raise error, но request.POST ['test [a]'] дает 1? – cehmja
@ user2661362: Поскольку jQuery отправляет этот запрос в качестве пары ключ-значение '" test [a] ": 1'. Параметры POST не поддерживают вложенную структуру данных, поэтому jQuery «распаковывает» их. – voithos