ОПУБЛИКОВАТЬ несколько параметров [закрыто]

StackOverflow https://stackoverflow.com/questions/177815

  •  05-07-2019
  •  | 
  •  

Вопрос

Я меняю 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&param=value2&param=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 + "&parameter2=" + 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, ну, ПОЛУЧИТЬ информацию и ОПУБЛИКОВАТЬ для любых действий, которые изменяют состояние сервера, таких как добавление новых записей.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top