Вы не можете получить доступ к abc
вне функции XHR onreadystate
. Это локальная переменная, и она также назначается асинхронно. Таким образом, вам нужно выполнить fetch()
вызовы оттуда.
Поэтому вы должны использовать вложенные циклы. Один l oop выполняет два GET
запроса, а затем вы выполняете 5 запросов POST в функции обратного вызова этого.
Вы можете делать все с Fetch вместо смешивания XHR и Fetch. Вы должны использовать encodeURIComponent(abc)
для обеспечения правильного кодирования.
for (let i = 0; i < 2; i++) {
fetch('http://example.com', {
method: "GET"
})
.then(response => response.text())
.then(str => {
let text = str.split('?id = "')[1];
let abc = encodeURIComponent(text.split('";')[0]);
for (let j = 0; j < 5; j++) {
fetch("http://www.example.com/post.php", {
"credentials": "include",
"headers": {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0",
"Accept": "*/*",
"Accept-Language": "en-US,en;q=0.5",
"Content-Type": "application/x-www-form-urlencoded",
"X-Requested-With": "XMLHttpRequest"
},
"referrer": "http://www.example.com/index.php",
"body": "id=" + abc,
"method": "POST",
"mode": "cors"
});
}
});
}