Tôi đang thay đổi GET thành POST. Hiện tại tôi có .jsp? Id = a, b, c, d. Khi thay đổi điều này thành một bài đăng tôi vẫn đang ngồi tham số id a, b, c, d. Điều này không làm việc cho tôi. Tôi có thể gửi danh sách được phân cách bằng dấu phẩy cho thông số bài đăng không?ĐĂNG nhiều thông số
Trả lời
Tôi có sai lầm hay hầu hết các câu trả lời là bên cạnh điểm?
Để trả lời chính xác câu hỏi của bạn, có, bạn có thể gửi danh sách được phân cách bằng dấu phẩy đến thông số POST. Thành thật mà nói, tôi đã thử một cách nhanh chóng với một tập lệnh PHP, nhưng tôi không thấy lý do tại sao Java sẽ hành xử khác nhau. Một điểm với yêu cầu POST chính xác là bạn có ít ràng buộc hơn về cú pháp (không cần phải thoát = & hoặc như vậy).
Vì vậy, nếu bạn giải thích chi tiết hơn về những gì "không hoạt động", có lẽ chúng tôi có thể giúp bạn nhiều hơn.
Bạn có thể làm điều đó như một lựa chọn hình thức đầu vào:
url param = value1 & param = value2 & param = VALUE3
Tùy thuộc vào ngôn ngữ và thư viện bạn bạn sẽ có thể để có được một loạt các giá trị cho param.
Ví dụ với asp.net MVC tôi làm điều này để có được một mảng của chuỗi:
string[] values = Request.Form.GetValues("param");
Fionn là đúng. Sử dụng
url?param=value1¶m=value2¶m=value3
để đặt nhiều giá trị cho một tham số. Để đọc các giá trị trong Servlet/JSP của bạn, bạn có thể sử dụng
String[] values = request.getParameterValues("param");
Đặt để tham số của bạn phân phối nhiều giá trị bằng cách đặt tên nó làm mảng. Thay vì kêu gọi đầu vào "id", gọi nó là "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>
Khi chế biến, nhớ để trích xuất các mảng các giá trị được gửi bởi tham số được đặt tên.
trong yêu cầu bài tối thiểu 1 tham số phải có trong danh sách tham số. Nếu bạn đang thêm tham số để yêu cầu thì nó sẽ không hoạt động. cho rằng u cần gửi tham số dưới dạng trường ẩn của biểu mẫu. Hoặc hãy thử sử dụng mã sau
chức năng makePOSTRequest (url, các thông số) {
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 và POST có hai mục đích khác nhau. Từ Wikipedia HTTP:
GET
yêu cầu một đại diện của tài nguyên quy định. Lưu ý rằng GET không nên được sử dụng cho các hoạt động gây ra tác dụng phụ, chẳng hạn như sử dụng nó để thực hiện các hành động trong các ứng dụng web. Một lý do cho điều này là GET có thể được sử dụng tùy ý bởi rô bốt hoặc trình thu thập thông tin, mà không cần phải xem xét các tác dụng phụ mà một yêu cầu sẽ gây ra. Xem các phương pháp an toàn bên dưới.
POST
Gửi dữ liệu được xử lý (ví dụ: từ biểu mẫu HTML) đến tài nguyên đã xác định. Dữ liệu được bao gồm trong phần nội dung của yêu cầu. Điều này có thể dẫn đến việc tạo tài nguyên mới hoặc cập nhật các tài nguyên hiện có hoặc cả hai.
Về cơ bản, bạn nên sử dụng GET,, GET, và POST cho bất kỳ hành động nào thay đổi trạng thái của máy chủ, chẳng hạn như thêm bản ghi mới.
Bạn có thể vượt qua nhiều hơn một tham số bằng cách sử dụng
xmlhttp
.send("files=" + files.value + "&tagcount="
+ tagcount.value);
Đây file và tagcount là id của parmeters để được thông qua. Điều này đã làm việc cho kịch bản lệnh Ajax của tôi. Trong các trường hợp thông thường, bạn chỉ có thể thêm các tham số theo &. Vì vậy, các thông số có thể trông giống như
"parameter1=" + parameter1.value + "¶meter2=" + parameter2.value
- 1. CXF JAXRS - Cách ĐĂNG NHẬP nhiều thông số
- 2. Nhiều thông số trong MyBatis?
- 3. liftweb - truy cập thông số nhận/đăng
- 4. JavaScript: Nhiều thông số trong __doPostBack
- 5. Thẻ url Django nhiều thông số
- 6. Nhiều thông số trong Danh sách
- 7. Đặt nhiều thông số cho ContentResolver.requestSync
- 8. Generics Java: nhiều thông số chung?
- 9. Cài đặt Scala - nhiều thông số
- 10. Chuyển nhiều thông số với $ .ajax url
- 11. biểu Lambda cho nhiều thông số
- 12. nhiều thông số gọi lại trong Moq
- 13. Nhiều thông số tùy chọn chức năng
- 14. Cách gửi yêu cầu đăng bài http đơn giản với thông số bài đăng trong java
- 15. pastebinit cách đăng thông tin đăng nhập bằng thông tin đăng nhập?
- 16. Đăng nhập tùy chỉnh bằng thông số thứ ba
- 17. Làm cách nào để đăng thông số trên d3.json?
- 18. Đăng yêu cầu với body_stream và thông số
- 19. Đăng nhập nhiều Postgres
- 20. Đăng ký Thông báo Đẩy
- 21. Gọi Delphi DLL từ C++ \ CLI với nhiều thông số
- 22. Zend Framework: Cách chọn DB với nhiều thông số?
- 23. chuyển nhiều thông số cho ProcessBuilder với một không gian
- 24. C++ đơn mẫu chuyên môn với nhiều thông số mẫu
- 25. Nhiều thông số trong http nhận được yêu cầu
- 26. Chuyển nhiều thông số trong một MVC Ajax.ActionLink
- 27. Chuyển nhiều thông số từ url đến html.actionlink
- 28. Truy xuất nhiều thông tin theo một số duy nhất?
- 29. Chuyển nhiều băm như thông số trong url
- 30. thẻ thông báo mùa xuân có nhiều đối số