0

我正在使用 8th Wall SDK 并尝试调用 API。当我尝试从 AFrame.registercomponent onclick 方法执行此操作时,请求未发送。

我是 AR 新手。当我尝试为 xhttp 添加警报消息时,它是空的。

我错过了什么?

有没有替代方案?

顺便说一句,我尝试使用 Awe.js 使用 AR 标记来执行此操作,并且效果很好。

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 的调用成功。

4

1 回答 1

2

xhttp.openandxhttp.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();
  }
}
于 2019-04-05T17:05:35.983 回答