이유를 설명해주세요.자바 스크립트를 사용하여 POST를 통해 하나의 변수를 여러 번 보낼 수 있습니까?
http://www.test.ccom/process?item=1AAA&item=2BBB&item=3CCC
이 URL은 3 개 가지 항목을 추가합니다 (각 중 하나) 결과 페이지로,이 같은 :
나는 그 형식이 같은 다른 서버에 요청을 보낼 필요가 : 난 그냥 3 단 하나 개의 항목으로 추가하려는 경우
Item = 1AAA Count=1
Item = 2BBB Count=1
Item = 3CCC Count=1
,이를 사용해야합니다
http://www.test.ccom/process?item=1AAA&item=1AAA&item=1AAA
그리고 결과 페이지는 다음과 같이 될 것입니다 :
Item = 1AAA Count=3
내 문제는 우리가 항목 당 100 개 이상을 추가 할 수 있기 때문에 (GET 방식을 사용하여 내 요청을 보낼 수 없다는 것입니다 그것이 원인이됩니다 "요청 -URI too large "오류)
두 가지 방법을 사용하여 POST로이 요청을 보내지 만 성공하지는 못했습니다. 그것은 내가 다른 변수 이름 (이름 = "항목에"+ 키)와 함께 테스트 할 때 작동합니다,하지만 난에 대해 하나의 변수 이름을 사용하는 경우가 작동하지 않습니다
function post_by_form(path, params) {
// The rest of this code assumes you are not using a library.
// It can be made less wordy if you use one.
var form = document.createElement("form");
form.setAttribute("method", "post");
form.setAttribute("action", path);
form.setAttribute("style", "display: none")
for(var key in params) {
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", "item");
hiddenField.setAttribute("value", params[key]);
form.appendChild(hiddenField);
}
document.body.appendChild(form);
form.submit();
}
:
우선 나는이 기능을 사용 모든 입력.
은 그 때 나는 아약스에 의해 POST 요청을 보내려면이 기능을 사용 : ...
function post_by_ajax(path, params_arr){
var http = new XMLHttpRequest();
var url = path;
var params = "";
for(var key in params_arr) {
if (params != "")
params += "&item="+params_arr[key];
else
params += "item="+params_arr[key];
}
http.open("POST", url, true);
//Send the proper header information along with the request
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
http.onreadystatechange = function() {//Call a function when the state changes.
if(http.readyState == 4 && http.status == 200) {
alert(http.responseText);
}
}
http.send(params);
}
같은 결과는,이 방법 모두가 하나의 항목 (마지막)에 대한 하나의 수량을 반환합니다 우리 동안 동일한 이름을 가진 여러 입력 필드가있는 양식을 제출할 수 있습니다. 왜이 방법을 사용하여 입력 할 수 없습니까?! 논리에 문제가 있습니까? 누군가 제발 도와주세요!
'$. post (url, {}, function (response) {});'- 왜 안 되니? – devdRew
@devdRew : 보내기가 가능합니다. 서버 측에서 가져 오는 것은 까다 롭습니다! ;) – Monica