Flask 400 плохой запрос при передаче json для отправки запроса [дубликат]

Я думаю, что это то, что вы ищете:

var tasks = new Task[3];
tasks[0] = GetFirstListFilesAsync();
tasks[1] = GetSecondListFilesAsync();
tasks[2] = GetThirdListFilesAsync();

// At this point, all three tasks are running at the same time.

// Now, we await them all.
await Task.WhenAll(tasks);

// Get an individual result, where result is MyMethodReturnObject
var myText = tasks[0].Result;

// Loop through results
var results = tasks.Select(o => o.Result).ToList();
foreach (var result in results)
{
    Console.Write(result);
}

Источник: http://blog.stephencleary.com/2012/02/async-and-await.html

60
задан mikemaccana 12 June 2013 в 06:37
поделиться

5 ответов

Вы передаете объект, , а не строку JSON. Когда вы передаете объект, jQuery использует $.param для сериализации объекта в пары имя-значение.

Если вы передадите данные в виде строки, это не будет сериализовано :

$.ajax({
    type: 'POST',
    url: '/form/',
    data: '{"name":"jonas"}', // or JSON.stringify ({name: 'jonas'}),
    success: function(data) { alert('data: ' + data); },
    contentType: "application/json",
    dataType: 'json'
});
115
ответ дан lonesomeday 18 August 2018 в 04:24
поделиться
  • 1
    Для этого используйте $ .post вместо $ .ajax. – user3746259 25 July 2015 в 20:27
  • 2
    @ user3746259 А? – lonesomeday 27 July 2015 в 12:13
  • 3
  • 4
    @ user3746259 Зачем вы хотите использовать $.post для этого? Это (a) только оболочка для $.ajax и (b) неспособна выполнить то, что здесь требуется (т. Е. Свойство contentType). – lonesomeday 27 July 2015 в 17:15
  • 5
    Пока, знаете ли, jQuery 3, то есть, который все еще находится в будущем now , неважно, когда этот ответ был написан более четырех лет назад . – lonesomeday 27 July 2015 в 17:17

Главный ответ работал нормально, но я предлагаю сохранить ваши данные JSON в переменную, прежде чем публиковать ее, немного чище при отправке длинной формы или работе с большими данными в целом.

var Data = {
"name":"jonsa",
"e-mail":"qwerty@gmail.com",
"phone":1223456789
};


$.ajax({
    type: 'POST',
    url: '/form/',
    data: Data,
    success: function(data) { alert('data: ' + data); },
    contentType: "application/json",
    dataType: 'json'
});

0
ответ дан David Arun 18 August 2018 в 04:24
поделиться

Я попробовал решение Ninh Pham, но это не сработало для меня, пока я не изменил его - см. ниже. Удалить contentType и не кодировать данные json

$.fn.postJSON = function(url, data) {
    return $.ajax({
            type: 'POST',
            url: url,
            data: data,
            dataType: 'json'
        });
0
ответ дан Lee Harding 18 August 2018 в 04:24
поделиться

Используя Promise и проверяя, является ли объект body действительным JSON. Если не будет получено обещание reject.

var DoPost = function(url, body) {
    try {
        body = JSON.stringify(body);
    } catch (error) {
        return reject(error);
    }
    return new Promise((resolve, reject) => {
        $.ajax({
                type: 'POST',
                url: url,
                data: body,
                contentType: "application/json",
                dataType: 'json'
            })
            .done(function(data) {
                return resolve(data);
            })
            .fail(function(error) {
                console.error(error);
                return reject(error);
            })
            .always(function() {
                // called after done or fail
            });
    });
}
-3
ответ дан loretoparisi 18 August 2018 в 04:24
поделиться

Основываясь на ответе lonesomeday, я создаю jpost, который обертывает определенные параметры.

$.extend({
    jpost: function(url, body) {
        return $.ajax({
            type: 'POST',
            url: url,
            data: JSON.stringify(body),
            contentType: "application/json",
            dataType: 'json'
        });
    }
});

Использование:

$.jpost('/form/', { name: 'Jonh' }).then(res => {
    console.log(res);
});
4
ответ дан Ninh Pham 18 August 2018 в 04:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: