2008-10-07 4 views
13

Я меняю GET на POST. В настоящее время у меня есть .jsp? Id = a, b, c, d. Когда я изменяю это сообщение, я все еще сижу с параметром id a, b, c, d. Это не работает для меня. Могу ли я отправить список с разделителями-запятыми на параметр post?POST несколько параметров

ответ

13

Я ошибаюсь или большинство ответов не относятся к делу?

Чтобы ответить на ваш вопрос, да, вы можете отправить список, разделенный запятыми, параметру POST. Честно говоря, я просто быстро попробовал PHP-скрипт, но я не понимаю, почему Java будет вести себя по-другому. Одна точка с запросами POST заключается в том, что у вас гораздо меньше ограничений на синтаксис (нет необходимости бегать = & или таких).

Итак, если вы более подробно объясните, что «не работает», возможно, мы сможем вам помочь.

14

Вы можете сделать это, как выбор формы ввод:?

URL PARAM = value1 & пары = значение2 & пары = Value3

В зависимости от вас языка и библиотек, вы должны быть в состоянии получить массив значения для параметра.


Например с ASP.NET MVC я сделать это, чтобы получить массив строк:

string[] values = Request.Form.GetValues("param"); 
13

Fionn прав. Используйте

url?param=value1&param=value2&param=value3 

установить несколько значений в один параметр. Чтобы прочитать значения в вашем Servlet/JSP вы можете использовать

String[] values = request.getParameterValues("param"); 
3

Set, чтобы ваш параметр поставить несколько значений, назвав его как массив. Вместо вызова ввода «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> 

При обработке, не забудьте извлечь массив значений, переданных им параметров.

0

в почтовом запросе должен быть минимальный параметр 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); 

}

0

GET и POST имеют два разных назначения. Из записи Википедии HTTP:

GET

Requests представление указанного ресурса. Обратите внимание, что GET не следует использовать для операций, которые вызывают побочные эффекты, например, для использования в веб-приложениях. Одна из причин этого заключается в том, что GET может использоваться произвольно роботами или искателями, которые не должны учитывать побочные эффекты, которые должен вызвать запрос. См. Безопасные методы ниже.

ПОСТ

представляет данные, подлежащие обработке (например, из HTML формы) с идентифицированным ресурса. Данные включены в тело запроса. Это может привести к созданию нового ресурса или обновлений существующих ресурсов или того и другого.

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

1

Вы можете передать более одного параметра с помощью

 xmlhttp 
       .send("files=" + files.value + "&tagcount=" 
         + tagcount.value); 

Здесь файлы и tagcount являются идентификатор parmeters будет принят. Это работало над моим сценарием Ajax. В обычных случаях вы можете просто добавить параметры на &. Таким образом, параметры могут выглядеть как

"parameter1=" + parameter1.value + "&parameter2=" + parameter2.value 
Смежные вопросы