Javascript переменная в XMLHttpReques на живом сервере сбрасывается в ноль - PullRequest
0 голосов
/ 29 января 2020

Я немного смущен этим, потому что на моем локальном хосте это сработало ..

Когда я запускаю свой код, я генерирую переменную перед рукой randomid Теперь я хочу использовать этот идентификатор внутри ответа моего XMLHttpRequest, но console.log показывает, что переменная randomid изменилась:

var randomid = "8bqfqm2q";

console.log("../export/" + randomid + ".ff" );

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
    if (xhr.readyState == XMLHttpRequest.DONE) {
        console.log("../export/" + randomid + ".ff" );
    }
}
xhr.open('POST', "../phpfile.php", true);
xhr.send(new FormData(document.getElementById("myform")));

Консоль напечатает:

../export/8bqfqm2q.ff
../export/.ff

Однако, когда я делаю это:

document.getElementById("passfilterid").value = "8bqfqm2q";

и передать document.getElementById("passfilterid").value вместо randomid в консольный журнал .. это работает ..

Я не понимаю, что случилось? Этот код прекрасно работал на моем локальном хосте, поэтому я не уверен, что делать. Я тоже не получаю никаких ошибок.

1 Ответ

1 голос
/ 29 января 2020

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

var xhr = new XMLHttpRequest();
xhr.randomid = "8bqfqm2q";
xhr.onreadystatechange = function() {

    if (xhr.readyState == XMLHttpRequest.DONE) {
        console.log("../export/" + this.randomid + ".ff" );
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...