Я видел несколько из этих вопросов, но я попытался реализовать их решения, и это не сработало для меня.QueryDict всегда пусто от AJAX POST
Я пытаюсь отправить основной запрос AJAX в представление django с помощью POST. Вот мой JQuery:
$('#save-button').click(function() {
var names = ['BLOGGS Joe', 'SMITH John'];
data = JSON.stringify(names);
$.ajax({
"contentType": "application/json; charset=utf-8",
"data": data,
"url" : "/ajax/myteam/save/",
"type": "POST",
"success": function(response) {
}
});
});
А вот мой Django вид:
def myteam_save(request):
if request.method == 'POST':
if request.POST:
print 'Hurray'
else:
print 'Boo'
response = HttpResponse(json.dumps({'code':'ok'}), content_type='application/json')
return response
Когда я анализирую Что происходит в Firebug я вижу, что пост делается как я собираюсь, но объект QueryDict из запроса . POST всегда пуст.
Я был осторожен в отношении токенов csrf Я думаю и даже пытался отключить «django.middleware.csrf.CsrfViewMiddleware» в моих настройках, но это, похоже, не имеет никакого эффекта.
Что я делаю неправильно?
Благодарим за помощь!
'" contentType ":" application/json; charset = utf-8 "' вы не отправляете JSON на сервер. Кроме того, это должно быть 'dataType: 'json'', чтобы сказать' функция успеха' обрабатывать 'response' как обрабатываемый JSON-объект. Что касается ответа django ... доступ к странице напрямую, отладка, пока вы не получите вывод, подтвердите вывод, действительно, json. – Ohgodwhy
@Ohgodwhy спасибо за ответ. Тип содержимого был только я, пытаясь сопоставить код другого, чтобы исправить проблему и забыл изменить ее. Что вы имеете в виду, обратившись к странице напрямую (извините, если глупый вопрос)? – lac