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