XMLHttpRequest | Отправка запроса вручную дает мне ответ из 2111 символов, но с использованием XMLHttpRequest длина ответа составляет 179 - PullRequest
0 голосов
/ 16 февраля 2020

Я в основном скопировал код 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)
  /* ... */
}

Ответы [ 2 ]

0 голосов
/ 16 февраля 2020

Хорошо, я только что узнал, что в заголовках отправлены куки. Очистив мои куки, я получил тот же результат, что и программа. Благодарю всех вас за участие!

0 голосов
/ 16 февраля 2020

Кажется, что 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...