Как правильно размещать данные JSON с помощью Ajax в Flask [duplicate]

Форматирование в Python выполняется с помощью оператора форматирования строки (%) :

  "% 02d:% 02d:% 02d"% (часы, минуты,  секунд)  

/ Edit: Также существует strftime .

151
задан rptwsthi 27 February 2013 в 07:02
поделиться

3 ответа

'data' должен быть строгим JavaScript-объектом:

data: JSON.stringify({ "userName": userName, "password" : password })

Чтобы отправить ваш formData, перейдите к stringify:

data: JSON.stringify(formData)

Некоторые серверы также требуется тип содержимого application/json:

contentType: 'application/json'

Также есть более подробный ответ на аналогичный вопрос: Jquery Ajax Проводка json в webservice

172
ответ дан davidism 15 August 2018 в 22:54
поделиться
  • 1
    Как я могу получить JSON в php? Какое имя я должен использовать? $ json = $ _POST [??] – user 3 August 2012 в 10:22
  • 2
    @tasos Я думаю, что это то, что вам нужно: stackoverflow.com/questions/5806971/… – Kyle Wild 13 August 2012 в 23:41
  • 3
    Здесь повторяется некорректность; это будет работать нормально для простых сценариев, но сообщение с кодировкой url может быть очень проблематичным, особенно для массивов вещей. – FMM 17 September 2012 в 20:14
  • 4
    @FMM и Jonas N - Можете ли вы, ребята, помочь мне выяснить, как обновить мой ответ за правильность? Примеры в документах jQuery (здесь: api.jquery.com/jQuery.post ) показывают, что вы можете опубликовать объект JS или строку, что заставило меня поверить, что jQuery обрабатывать всю необходимую сериализацию строк. – Kyle Wild 17 September 2012 в 21:00
  • 5
    Рассмотрим, что происходит, когда ваши данные содержат, например, список вещей: { foo: [1,2,3], bar: 'baz' }. Это получит форму, закодированную как foo%5B%5D=1&foo%5B%5D=2&foo%5B%5D=3&bar=baz (unescaped, это foo[]=1&foo[]=2&foo[]=3&bar=baz). Наверное, не то, что вы хотите на стороне сервера. – FMM 5 December 2012 в 19:21

Если вы отправляете этот почтовый запрос в кросс-домен, вы должны проверить эту ссылку.

https://stackoverflow.com/a/1320708/969984

Ваш сервер не принимает запрос на перекрестный сайт. Поэтому необходимо изменить конфигурацию сервера, чтобы разрешить запросы на межсайтовый сайт.

1
ответ дан Community 15 August 2018 в 22:54
поделиться

Вы отправляете JSON, как это

$.ajax(url, {
    data : JSON.stringify(myJSObject),
    contentType : 'application/json',
    type : 'POST',
    ...

, если вы передаете объект как settings.data jQuery будет преобразовывать его в параметры запроса и по умолчанию отправлять с помощью приложения типа данных / x-www-form- urlencoded; charset = UTF-8, возможно, не то, что вы хотите

225
ответ дан teknopaul 15 August 2018 в 22:54
поделиться
  • 1
    Итак, вы НЕ устанавливаете processData: false right? – Tim Lovell-Smith 12 September 2014 в 16:48
  • 2
    @ TimLovell-Smith не будет иметь никакого значения, поскольку jQuery не будет обрабатывать строку data в любом случае – Phil 17 November 2017 в 03:41
Другие вопросы по тегам:

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