Я в основном скопировал код MDN и трижды проверил URL. Я не могу найти причину, почему ответы отличаются. Для справки вот мой код: Edit: не видел, что куки были отправлены, извините
function getUsernames(str) { console.log(str) } function reqListener() { alert(getUsernames(this.responseText)); } var oReq = new XMLHttpRequest(); oReq.addEventListener("load", reqListener); oReq.open("GET", "https://www.instagram.com/graphql/query/?query_hash=c76146de99bb02f6415203be841dd25a&variables=%7B%22id%22%3A%2217199917378%22%2C%22include_reel%22%3Atrue%2C%22fetch_mutual%22%3Atrue%2C%22first%22%3A24%7D"); oReq.responseType = "arraybuffer"; oReq.send(); oReq.onload = function(e) { var arraybuffer = oReq.response; // not responseText console.log(arraybuffer) /* ... */ }
Хорошо, я только что узнал, что в заголовках отправлены куки. Очистив мои куки, я получил тот же результат, что и программа. Благодарю всех вас за участие!
Кажется, что xmlhttprequest урезан и не содержит данных, которые вы хотите, если у вас нет ключа (auth)
Вот что-то хакерское: Как я могу получить пользовательские мультимедиа из Instagram без аутентификации как пользователь?
У вас также есть два обработчика нагрузки. Вы, вероятно, имеете в виду это
function getUsernames(str) { return JSON.parse(str); // of course do something with this when complete } function reqListener() { console.log(getUsernames(this.responseText)); } var oReq = new XMLHttpRequest(); oReq.addEventListener("load", reqListener); oReq.open("GET", "https://www.instagram.com/graphql/query/?query_hash=c76146de99bb02f6415203be841dd25a&variables=%7B%22id%22%3A%2217199917378%22%2C%22include_reel%22%3Atrue%2C%22fetch_mutual%22%3Atrue%2C%22first%22%3A24%7D"); oReq.responseType = "text"; oReq.send();