У меня есть переменная Javascript, которая представляет собой массив (я нажимаю на него строки), и я должен отправить этот список обратно на сервер с помощью метода AJAX jQuery.POST():jQuery, AJAX post Javascript массив с JSON
var user_list = new Array();
user_list.push("42");
var data = { user_list: JSON.stringify(user_list)};
$.post('/accounts/ajax/user_verification/', data)
.done(my_cb);
на сервере, я бег Django и попытаться декодировать запрос POST со следующей точкой зрения:
@login_required
def user_verification(request):
if not request.POST.has_key('user_list'):
print (__name__ + ', user_verification, raising BadRequest.')
raise Exception("'user_list' not found as a POST parameter.")
value = unicode(request.POST['user_list'])
print (__name__ + ', value, v = ' + value)
user_list = json.loads(request.body)
я получаю следующие выходные и заднее исключение брошенного "json.loads (request.body) ":
accounts.ajax, value, v = ["42"]
ValueError: No JSON object could be decoded
Не является ["42"] допустимым определением массива JSON с одним элементом?
попытка прохождения '{ "42"}' вместо '[ "42"]' –
Но я использую JSON.stringify(), не является его выход правильно? – Ricardo
попробуйте изменить «ключ» 'user_list' в вашей структуре JSON на что-то еще. Это может вызвать проблемы. Кроме того, чтобы быть в безопасности, вы можете изменить JSON на 'var data = {" newKey ": JSON.stringify (user_list)}'? –