Как мне сделать вызов REST XMLHttpRequest из AFrame при использовании 8th Wall Web?

Я использую 8th Wall SDK и пытаюсь вызвать API. Когда я пытаюсь сделать это с помощью метода AFrame.registercomponent onclick, запрос не отправляется.

Я новичок в AR. Когда я попытался добавить предупреждающие сообщения для xhttp, он пуст.

Что мне не хватает?

Есть ли альтернатива этому?

Кстати, я попытался сделать это с маркером AR, используя Awe.js, и он работал нормально.

AFRAME.registerComponent('play-on-window-click', {
  ...
  ...
  onClick: function(evt) {
    var video = this.el.components.material.material.map.image;

    // I'm sending a request from here - BEGIN
    var xhttp = new XMLHttpRequest();
      xhttp.onreadystatechange = function() {
        if (this.status == 200) {
          this.responseText;
        }
      xhttp.open("GET", "https://myapi/rest/abc", true);
      xhttp.send();
    }
    // END

    video.play();
  }
}

Я ожидаю, что вызов сделан успешным для API.

1 ответ

xhttp.open а также xhttp.send звонки внутри onreadystatechange обработчик, поэтому он не будет отправлен. Примерно так должно работать:

AFRAME.registerComponent('play-on-window-click', {
  ...
  ...
  onClick: function(evt) {
    var video = this.el.components.material.material.map.image;

    // I'm sending a request from here - BEGIN
    var xhttp = new XMLHttpRequest();
    http.onreadystatechange = function() {
      if (this.status == 200) {
        alert(this.responseText);
      }
    }
    xhttp.open("GET", "https://myapi/rest/abc", true);
    xhttp.send();
    // END

    video.play();
  }
}
Другие вопросы по тегам