Javascript 如何获取jquery post返回值?
我想通过使用对php文件的ajax post调用来检索服务器上图像的高度和宽度,该调用返回一个双管道分隔字符串“width | | height” 我的javascript正确地警告了php文件中请求的字符串,因此信息现在在我的脚本中,但我似乎无法在$.post函数之外访问它 这项工作:Javascript 如何获取jquery post返回值?,javascript,ajax,jquery,Javascript,Ajax,Jquery,我想通过使用对php文件的ajax post调用来检索服务器上图像的高度和宽度,该调用返回一个双管道分隔字符串“width | | height” 我的javascript正确地警告了php文件中请求的字符串,因此信息现在在我的脚本中,但我似乎无法在$.post函数之外访问它 这项工作: var getImagesize = function(sFilename) { $.post("getImagesize.php", { filename: sFilename, time:
var getImagesize = function(sFilename)
{
$.post("getImagesize.php", { filename: sFilename, time: "2pm" },
function(data){
alert(data.split('||'));
});
}
但检索是另一回事:
// this line calls the function in a loop through images:
var aOrgdimensions = getImagesize($(this, x).attr('src')) ;
alert(aOrgdimension);
// the called function now looks like this:
var getImagesize = function(sFilename)
{
var aImagedims = new Array();
$.post("getImagesize.php", { filename: sFilename },
function(data){
aImagedims = data.split('||');
});
return "here it is" + aImagedims ;
}
有人能告诉我我做错了什么吗?你误解了AJAX调用的工作方式。AJAX中的第一个“A”代表异步,这意味着请求独立于正在运行的代码线程。这就是为什么在AJAX中回调如此之大的原因,因为在完成某件事情之前,您不知道什么时候该做什么。与此同时,您的代码仍在继续 在代码中,您试图分配一个变量,
aOrgdimensions
一个直到请求完成后才知道的值。有两种解决方案:
async:false
来实现的Thanx用于异步解释。我没有意识到这一点,但至少现在我知道为什么我的VAR不可用了 编辑:算出了。按照建议使用回调函数,一切正常:D