【问题标题】:Javascript object cannot access url if it was received from AJAX如果 Javascript 对象是从 AJAX 接收的,则无法访问 url
【发布时间】:2015-12-06 15:39:42
【问题描述】:

如果 url 是手动分配的,例如 imgUrl="http://image.jpg" 它工作得很好,但如果它从后端使用 AJAX 函数“getRemote”接收它就没有。如果请求是异步的,它甚至不在这个块中,但如果它是同步的,它会被接收到,但 AR 对象不能使用它。任何想法为什么?

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

getRemote 函数:

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

}

【问题讨论】:

标签: javascript jquery ajax wikitude


【解决方案1】:

除非您可以等待响应,否则方法不能返回 ajax 响应,相反,您应该将代码包装在一个函数中并将其用作回调,该回调将在 ajax 完成时执行:

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);

【讨论】:

    猜你喜欢
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    • 2016-11-05
    • 2021-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多