#javascript #html #xmlhttprequest
#javascript #HTML #xmlhttprequest
Вопрос:
Я сделал простой XMLHttpRequest, который действительно работает, отправляет запрос и т. Д. Точно так же, как в школах W3.
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 amp;amp; this.status == 200) {
document.getElementById("demox").innerHTML = this.responseText;
}
};
xhttp.open("POST", "textx.php", true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send("fname=" textxx);
}
Проблема начинается, когда я пытаюсь запустить запрос, нажав на ссылку, которая отправляет меня в файл php, который обрабатывает запрос. Мне трудно понять на моем текущем уровне, почему это не работает, поскольку оно работало с простыми формами и тому подобным.
Я получаю:
"Notice: Undefined index: fname ..."
Итак, я полагаю, это означает, что переменная не была отправлена. Может кто-нибудь объяснить? Или есть способ отладить вещи, которые отправляются с одной страницы на другую. Все, что я нашел, это отладчик в chrome, который действительно фиксирует запросы, но не имеет реальной пользы, поскольку меня отправляют на textx.php страница, и все потеряно.
Комментарии:
1. Это работает, если я запускаю JS-код с помощью <button> , но когда я использую <a href>, это работает, но, похоже, прогресс на загруженной странице теряется.
<button type="button" onclick="loadDocx()">Test x</button> <a href="textx.php" onclick="loadDocx()">Test x2</a>
Ответ №1:
Не совсем уверен, в чем может быть ваша проблема, может быть, попробуйте:
var xhttp = new XMLHttpRequest();
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.open("POST", "textx.php", true);
xhttp.onreadystatechange = function() {
if (this.readyState === 4){
if(this.status===200 || this.status===0){
document.getElementById("demox").innerHTML = this.responseText;
}
};
var fname = "fname=" textxx;
xhttp.send(fname);
}
Вы можете console.log(xhttp);
просмотреть пошаговый профиль и выяснить, в чем может быть проблема.
Ответ №2:
В любом случае, я все еще не уверен, но я загрузил свою страницу (код) на хостинг-сервер, и код сработал. PHP не показывал никаких предупреждений, и все шло по плану. Проблема, похоже, связана с запуском локального сервера (WAMP). Изменение версии PHP не помогло. Возможно, мне придется копнуть немного глубже в этом.