разница xmlhttprequest в браузере и nodejs - PullRequest
0 голосов
/ 27 мая 2020

Этот jsfiddle отлично работает в браузере Chrome на Ma c. Здесь также код:

// http://www.henryalgus.com/reading-binary-files-using-jquery-ajax/
function fetchBlob(uri, callback) {
  var xhr = new XMLHttpRequest();
  xhr.open("GET", uri, true);
  xhr.responseType = "arraybuffer";

  xhr.onload = function (e) {
    if (this.status == 200) {
      var blob = this.response;
      if (callback) {
        callback(blob);
      }
    }
  };
  xhr.send();
}

// http://stackoverflow.com/a/9458996/128597
function _arrayBufferToBase64(buffer) {
  var binary = "";
  var bytes = new Uint8Array(buffer);
  var len = bytes.byteLength;
  for (var i = 0; i < len; i++) {
    binary += String.fromCharCode(bytes[i]);
  }
  return btoa(binary);
}

fetchBlob(
  "https://upload.wikimedia.org/wikipedia/commons/thumb/f/f9/Jsfiddle-logo.png/250px-Jsfiddle-logo.png",
  (blob) => {
    let base64 = _arrayBufferToBase64(blob);
    console.log(base64);
    document.getElementById("base64").src = "data:image/png;base64," + base64;
  }
);

Тот же код (за исключением функции документа) в среде nodejs с использованием xmlhttprequest и btoa не возвращает результат в функция xhr.onload в объекте this.response (строка 9 в скрипте).

В чем разница и что нужно изменить, чтобы он работал таким же образом?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...