ОПУБЛИКОВАТЬ несколько параметров [закрыто]
Вопрос
Я меняю GET на POST.В настоящее время у меня есть .jsp?id=a, b, c, d.При изменении этого на post я все еще использую параметр id a, b, c, d.У меня это не работает.Могу ли я отправить список, разделенный запятыми, в параметр post?
Решение
Я ошибаюсь или большинство ответов не имеют смысла?
Чтобы точно ответить на ваш вопрос, да, вы можете передать разделенный запятыми список в параметре POST. Честно говоря, я просто быстро попробовал PHP-скрипт, но не понимаю, почему Java будет вести себя иначе. Одна из особенностей POST-запросов заключается в том, что у вас гораздо меньше ограничений на синтаксис (не нужно экранировать = и т. Д.).
Итак, если вы более подробно объясните, что "не работает", возможно, мы сможем вам помочь больше.
Другие советы
Вы можете сделать это как ввод формы выбора:
url?параметр=значение1¶m=значение2¶m=значение3
В зависимости от вашего языка и библиотеки вы должны быть в состоянии получить массив значений для параметра.
Например, с помощью asp.net mvc я делаю это, чтобы получить массив строк:
string[] values = Request.Form.GetValues("param");
Фионн прав. Используйте
url?param=value1¶m=value2¶m=value3
для установки нескольких значений на один параметр. Чтобы прочитать значения в вашем сервлете / JSP, вы можете использовать
String[] values = request.getParameterValues("param");
Установите, чтобы ваш параметр доставлял несколько значений, называя его массивом. Вместо вызова ввода «id», назовите его «id []»
<form method="post">
<select multiple name="id[]">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<input type="submit" value="send">
</form>
При обработке не забудьте извлечь массив значений, отправленных указанным параметром. Р>
Вы можете передать более одного параметра, используя
xmlhttp
.send("files=" + files.value + "&tagcount="
+ tagcount.value);
Здесь files и tagcount - это идентификатор передаваемых параметров. Это работает для моего сценария Ajax. В обычных случаях вы можете просто добавить параметры с помощью & amp; . Таким образом, параметры могут выглядеть как
"parameter1=" + parameter1.value + "¶meter2=" + parameter2.value
в post-запросе в списке параметров должен присутствовать минимум 1 параметр.Если вы добавляете параметр к запросу, то это не сработает.для этого вам нужно отправить параметр в виде скрытого поля формы.Или попробуйте использовать следующий код
функция makePOSTRequest(url, параметры) {
http_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
// set type accordingly to anticipated content type
//http_request.overrideMimeType('text/xml');
http_request.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert('Cannot create XMLHTTP instance');
return false;
}
http_request.onreadystatechange = alertContents;
http_request.open('POST', url, true);
http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http_request.setRequestHeader("Content-length", parameters.length);
http_request.setRequestHeader("Connection", "close");
http_request.send(parameters);
}
GET и POST имеют две разные цели.Из HTTP -записи в Википедии:
ПОЛУЧИТЬ
Запрашивает представление указанного ресурса.Обратите внимание, что GET не следует использовать для операций, которые вызывают побочные эффекты, таких как использование его для выполнения действий в веб-приложениях.Одна из причин этого заключается в том, что GET может произвольно использоваться роботами или сканерами, которым не нужно учитывать побочные эффекты, которые должен вызвать запрос.Смотрите безопасные методы ниже.
Публикация
Отправляет данные для обработки (например,из HTML-формы) к идентифицированному ресурсу.Эти данные включены в текст запроса.Это может привести к созданию нового ресурса или обновлению существующих ресурсов, или к тому и другому.
По сути, вы должны использовать GET to, ну, ПОЛУЧИТЬ информацию и ОПУБЛИКОВАТЬ для любых действий, которые изменяют состояние сервера, таких как добавление новых записей.