Javascript 对象无法访问 url 如果它是从 AJAX 接收的

Javascript object cannot access url if it was received from AJAX

如果 url 是手动分配的,例如 imgUrl="http://image.jpg" 它可以完美地工作,但是如果它是在后面的函数 "getRemote" 中使用 AJAX 接收的结束它没有。如果请求是异步的,它甚至不在这个块中,但如果是同步的,它会被接收,但 AR 对象不能使用它。有什么想法吗?

var imgUrl = getRemote();
this.img = new AR.ImageResource(imgUrl);
this.imgOverlay = new AR.ImageDrawable(this.img, 0.5, {
    offsetX: 0,
    offsetY: 0,
});

获取远程函数:

function getRemote() {
return $.ajax({
    type: "GET",
    url: "http://someurl.php",
    async: true
}).responseText;

}

除非你可以等待响应,否则方法不能 return ajax 响应,相反你应该将你的代码包装在一个函数中并将其用作回调,它将在 [=16] 时执行=] 已完成:

var callOnRemote = function(imgUrl){
   this.img = new AR.ImageResource(imgUrl);
   this.imgOverlay = new AR.ImageDrawable(this.img, 0.5, {
       offsetX: 0,
       offsetY: 0,
   });
};

getRemote(callOnRemote);

带有 jquery 的 getRemote 函数看起来像这样:

$.ajax({
  url: "/test.html"
}).success(callOnRemote);