Как мне сделать вызов REST XMLHttpRequest из AFrame при использовании 8th Wall Web? - PullRequest
0 голосов
/ 05 апреля 2019

Я использую 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 Ответ

2 голосов
/ 05 апреля 2019

Вызовы 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();
  }
}
...