我以前做过一些jQuery,但我完全被困在这里了。我知道使用同步ajax调用的优缺点,但这里需要使用同步ajax调用。
远程页面已加载(由firebug控制),但未显示任何返回。
我应该怎么做才能使我的函数正确返回?
function getRemote() {
var remote;
$.ajax({
type: "GET",
url: remote_url,
async: false,
success : function(data) {
remote = data;
}
});
return remote;
}
发布于 2011-07-14 04:35:25
当您发出同步请求时,这应该是
function getRemote() {
return $.ajax({
type: "GET",
url: remote_url,
async: false
}).responseText;
}
示例- http://api.jquery.com/jQuery.ajax/#example-3
请注意:将async属性设置为false是不推荐使用的,并且正在被删除(link)。包括Firefox和Chrome在内的许多浏览器已经开始在控制台中打印警告,如果您使用以下命令:
Chrome:
主线程上的
Synchronous XMLHttpRequest已被弃用,因为它会对最终用户的体验造成不利影响。有关更多帮助,请查看https://xhr.spec.whatwg.org/。
Firefox:
主线程上的
Synchronous XMLHttpRequest已被弃用,因为它会对最终用户的体验造成不利影响。有关更多帮助,请访问http://xhr.spec.whatwg.org/
发布于 2011-07-14 04:35:36
您错误地使用了ajax函数。因为它是同步的,所以它将像这样返回内联数据:
var remote = $.ajax({
type: "GET",
url: remote_url,
async: false
}).responseText;
发布于 2011-07-14 04:34:22
这个url有多远?是来自同一个域名吗?代码看起来没问题
尝尝这个
$.ajaxSetup({async:false});
$.get(remote_url, function(data) { remote = data; });
// or
remote = $.get(remote_url).responseText;
https://stackoverflow.com/questions/6685249
复制相似问题