#javascript #xmlhttprequest
#javascript #xmlhttprequest
Вопрос:
Я хочу изменить приведенный ниже код для использования запроса POST. Как я могу этого добиться?
function getRecord(){
xhr.open("GET", "items.php?id=" Number(new Date), true);
xhr.onreadystatechange = getData;
xhr.send(null);
}
Ответ №1:
Приведенный ниже код должен работать для вас. Не то чтобы, помимо изменения "GET"
на "POST"
, вам также нужно будет сделать несколько других вещей — отправить заголовок и параметры отдельно (последняя строка). В настоящее время вы не отправляете никаких параметров (вашу последнюю строку); они кодируются так же, как ваши параметры GET, только без «?» в начале.
function getRecord() {
var params = "id=" Number(new Date);
xhr.open("POST", "items.php", true);
//Send the proper header information along with the request
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("Content-length", params.length);
xhr.setRequestHeader("Connection", "close");
xhr.onreadystatechange = getData;
xhr.send(params);
}
Комментарии:
1. @Chris — В таком случае, пожалуйста, отметьте этот ответ как правильный, щелкнув зеленую галочку рядом с ним — таким образом, другие будут знать, что вы уже получили свой ответ, и он не будет отображаться как неотвеченный.
Ответ №2:
Вам нужно было бы создать объект FormData, как указано на https://developer.mozilla.org/en-US/docs/Web/API/FormData/Using_FormData_Objects#Creating_a_FormData_object_from_scratch
Но это будет работать только в браузерах Gecko 2