2009-10-28 3 views
0

Когда я отправляю JSON-представление своего объекта на сервер, как должна быть доставлена ​​полезная нагрузка? Насколько я вижу, есть два варианта:json представительство для REST. Данные формы или формы POST?

  1. как загруженный файл
  2. как содержание в POST данные формы

Первый случай не может быть выполнена с помощью запроса AJAX, насколько как я вижу, но это кажется «правильным». Знаете ли вы, есть ли предпочтительный «де-факто» способ выполнить эту задачу?

ответ

0

Вы можете использовать метод POST для отправки любых данных, что означает, что вы можете загрузить его (тело запроса) с помощью JSON, и это совершенно правильно. Просто убедитесь, что ваше серверное приложение способно декодировать его - для этого вы можете предоставить свой запрос правильному заголовку Content-Type («application/json» или тому, что является правильным типом носителя), поэтому серверная сторона знает, как десериализовать полезная нагрузка.

0

У вас не возникло проблем с публикацией объекта JSON непосредственно из Javascript. См. here для примеров того, как это сделать с помощью jQuery.

Я не вижу преимущества использования формы для публикации данных.

+0

Я имею в виду, что Ajax.post принимает данные как пары ключ/значение (сериализован или нет). Это означает, что эти данные появятся в запросе.POST в django, например, не в запросе.FILES. Чтобы настроить загрузку файла, это гораздо более сложная проблема. –

+0

Странно, как часто фреймворки затрудняют работу с HTTP, чем доступ к нему напрямую. –

0

Чтобы отправить сырые данные как Ajax запрос с JQuery, используйте $.ajax() с processData=false и contentType набором все, что вы хотите (application/json в этом случае.)

Установка processData=false предотвратит JQuery от преобразования data в форме пост.

Смежные вопросы