2014-11-18 11 views
0

Я действительно хочу понять, как пользовательский ввод отправляется через объект HTTP-запроса и как определяется его формат.Как данные ввода/формы пользователя передаются через HTTP с использованием метода POST

Предположим, что в html есть несколько текстовых полей, и когда мы отправляем эту форму с использованием метода POST, тогда обычно строка запроса формируется примерно так: name = tanmay & location = xyz и отправляется в тело запроса HTTP. Все в порядке!

Теперь предположим, что вместо того, чтобы иметь querystring, я хочу, чтобы данные отправлялись как объект json как-то вроде {name: "tanmay", location: "xyz"} то что мне делать? Можно ли правильно настроить заголовок «content-type» на «application/json»? Но где я могу указать этот заголовок в своем приложении.

Указан ли заголовок «content-type» при отправке ответа клиенту? Если это так, означает ли это, когда сконфигурирован HTTP-запрос, тогда заголовок «content-type» считывается из ответа HTTP и на основе этого тела запроса форматируется. Это правда ?

Может ли кто-нибудь предоставить дополнительную информацию о том, как сконструирован объект запроса HTTP? Как файл отправляется по HTTP-запросу.

Я знаю, что мы имеем полный контроль, когда мы создаем объект ответа на стороне сервера, но, похоже, у меня нет контроля над заголовками объектов HTTP-запроса (все, что мы можем сделать, это разобрать его и прочитать данные из HTTP-запроса).

+0

С какого языка вы строите запрос POST? –

+0

Я верю, что этот вопрос больше похож на модель HTTP-запроса/ответа, а не на язык? Пожалуйста, дайте мне знать, если я ошибаюсь. Кстати, я использую стек MEAN для моего развития. – JackSparrow

ответ

2

HTTP просто предоставляет метод для having a POST body и как Content Types should be sent.

Реальный механизм для построения запроса составляет от агента пользователя, который может представлять собой веб-браузер, но может так же легко быть приложение мобильный телефон и т.д.

без использования JavaScript, веб-браузеры, как правило, поддержка application/x-www-form-urlencoded, multipart/form-data или text/plain (с использованием enctype attribute on the form). Конечно, используя код JavaScript, запущенный на клиентском браузере, это может форматировать как практически любое, что нравится коду, и пересылать его, включая JSON.

+0

Итак, вот мое понимание: когда форма отправляется в браузер, а затем на основе «enctype», она будет форматировать данные в теле запроса и отправлять их обратно на сервер (мы можем использовать enctype = «application/json» для форматирования данных в объект JSON). По умолчанию enctype является «application/x-www-form-urlencoded» в этом теле передается как обычный queryString. Однако использование форм в угловом режиме имеет другой эффект. В угловом по умолчанию запросы POST имеют Content-Type: application/json, поэтому при отправке тела формы форматируется как объект JSON, а не строка запроса. Пожалуйста, поправьте меня, если я ошибаюсь. – JackSparrow

+0

Угловая ссылка: https://docs.angularjs.org/api/ng/service/$http – JackSparrow

+0

Это потому, что угловая рамочная среда JavaScript работает на клиенте и форматирует тело сообщения по своему усмотрению. –

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

  • Нет связанных вопросов^_^