Должны ли все данные отправляться по HTTP-POST? - PullRequest
3 голосов
/ 18 июля 2011

У меня есть некоторый jQuery, который отправляет данные на страницу AddComment.php.Данные - это идентификатор пользователя (может быть получен через сеанс), идентификатор элемента и комментарий в текстовой форме.

В этом случае все данные должны отправляться через POST?Есть ли случаи, когда можно найти сочетание GET и POST?

Ответы [ 3 ]

4 голосов
/ 18 июля 2011

Перейти к чтению RFC 2616.

Существуют очень специфические семантики, связанные с GET и POST, которые имеют большое влияние на кэширование и ведение журнала.

В вашем примере данныебыть добавленным следует отправить в ПОЧТЕ.Вопрос о том, следует ли отправлять ссылку на комментируемый элемент через переменную POST или GET, является дискуссионным.(вы можете выполнить POST для URL-адреса со строкой запроса, и любой компетентный веб-язык должен иметь возможность различать одно и то же имя переменной, отправляемое обоими методами)при размещении на фронт-контроллере - здесь один и тот же путь используется различными функциями (веб-страницами, если хотите).Конкретный бит вызываемой функциональности указывается запросом в операции GET.Если критерии выбора перенесены в POST, то вам придется обслуживать оба сценария внутри фронт-контроллера, и вы теряете разрешение функциональности в файлах журнала.

2 голосов
/ 18 июля 2011

Он должен отправляться POST, главным образом, потому что комментарий может превышать длину URL-адреса, к которому веб-браузер будет иметь доступ. Он также должен отправляться POST, потому что эта форма создает или изменяет данные, и это соглашение. Например, поисковые пауки не будут делать POST-запросы, чтобы избежать этого.

Вы не можете смешивать GET и POST. HTTP-запрос имеет только один метод.

1 голос
/ 18 июля 2011

На самом деле я думаю, что если вы делаете:

var id= $('#id').val();
var itemid= $('#itemid').val();
var comment= $('#comment').val();
var url = 'AddComment.php?id='+id;
var data = { itemid: itemid, comment: comment }
$.post(url, data, successFunction);

ваш itemId будет отправлен через POST, а идентификатор через GET, и php распознает его (иногда я делаю это, используя действие формы, но не через ajax).

Кстати - зачем вам это? Почему бы не отправить все через POST?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...