Подтвердить что ты не робот

Как разместить структуру данных, например, json для фляжки?

У меня есть структура данных вроде этого:

enter image description here

Я пытаюсь отправить его на сервер с помощью $.ajax:

$.ajax({
    type: 'POST',
    data: post_obj, //this is my json data
    dataType: 'json',
    url: '',
    success: function(e){
       console.log(e);
    }
});

и я хочу получить его на сервере флягой: title = request.form['title'] работает нормально!

Но как мне получить content?

request.form.getlist('content') не работает.

Это данные сообщения в firebug:

enter image description here

Большое спасибо: D

4b9b3361

Ответ 1

Вы отправляете свои данные в виде строки запроса вместо JSON. Flask способен обрабатывать JSON-кодированные данные, поэтому имеет смысл отправлять его так. Вот что вам нужно сделать на стороне клиента:

$.ajax({
    type: 'POST',
    // Provide correct Content-Type, so that Flask will know how to process it.
    contentType: 'application/json',
    // Encode your data as JSON.
    data: JSON.stringify(post_obj),
    // This is the type of data you're expecting back from the server.
    dataType: 'json',
    url: '/some/url',
    success: function (e) {
        console.log(e);
    }
});

На серверной стороне доступ к данным осуществляется через request.json (уже декодировано):

content = request.json['content']

Ответ 2

Если вы проверите POST, отправленный jQuery, вы, скорее всего, увидите, что content фактически передается как content[]. Чтобы получить доступ к нему из объекта Flask request, вам нужно будет использовать request.form.getlist('content[]').

Если вы предпочитаете, чтобы он прошел через content, вы можете добавить traditional: true к вашему вызову $.ajax().

Подробнее об этом можно узнать в разделе "данные" и "традиционные" http://api.jquery.com/jQuery.ajax/.