XMLHttpRequest JSON ответ ничего не возвращает при использовании в качестве переменной - PullRequest
0 голосов
/ 10 июля 2020

Я пытаюсь загрузить изображение на Imgur.com с помощью Imgur API и XMLHttpRequest, но по какой-то причине ничего не возвращается. Я использовал официальный пример Imgur , за исключением того, что я преобразовал ответ в json через xhr.responseType = 'json';

У меня есть это:

var get_link = xhr.response.data.link.replace(/^http:\/\//i, 'https://');
alert(get_link);

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

Полная функция:

// Converts canvas into image and uploads to Imgur
function exportImg() {
  var img = c.toDataURL("image/png");

  var data = new FormData();
  data.append("image", img);

  var xhr = new XMLHttpRequest();
  xhr.withCredentials = true;

  xhr.open("POST", "https://api.imgur.com/3/image");
  xhr.responseType = 'json';
  xhr.setRequestHeader("Authorization", "Client-ID {{secret-id-here}}");

  xhr.send(data);

  xhr.onreadystatechange = function() {
    if (xhr.readyState == XMLHttpRequest.DONE) {
      var get_link = xhr.response.data.link.replace(/^http:\/\//i, 'https://');
      alert(get_link);
      document.querySelector('#imgLink').innerHTML = '<img class="img" src=\"' + get_link + '\"/>';
    }
  };
}

Пример ожидаемого ответа:

{
  "data": {
    "id": "orunSTu",
    "title": null,
    "description": null,
    "datetime": 1495556889,
    "type": "image/gif",
    "animated": false,
    "width": 1,
    "height": 1,
    "size": 42,
    "views": 0,
    "bandwidth": 0,
    "vote": null,
    "favorite": false,
    "nsfw": null,
    "section": null,
    "account_url": null,
    "account_id": 0,
    "is_ad": false,
    "in_most_viral": false,
    "tags": [],
    "ad_type": 0,
    "ad_url": "",
    "in_gallery": false,
    "deletehash": "x70po4w7BVvSUzZ",
    "name": "",
    "link": "http://i.imgur.com/orunSTu.gif"
  },
  "success": true,
  "status": 200
}

Как я могу заставить это отображать ссылку на полученное изображение в предупреждающем сообщении?

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