Javascript:从我的ajax函数返回值

Javascript:从我的ajax函数返回值,javascript,ajax,xmlhttprequest,Javascript,Ajax,Xmlhttprequest,我遇到的问题是,我的代码在图像变量中调用了ajaxFunction(),ajaxFunction()没有向该变量返回任何内容,导致我出现以下错误 未捕获的TypeError:无法调用未定义的方法“split” 灯箱 (匿名函数) 任何帮助都将不胜感激 AJAX代表异步JavaScript和XML。这里的关键部分实际上是异步部分。这意味着,当您向服务器发送信息请求时,浏览器会在后台获取信息,而不会干扰现有页面的显示和行为。因此,当涉及AJAX时,回调是巨大的——您不知道您的服务器是否需要500毫秒

我遇到的问题是,我的代码在图像变量中调用了ajaxFunction(),ajaxFunction()没有向该变量返回任何内容,导致我出现以下错误

未捕获的TypeError:无法调用未定义的方法“split” 灯箱 (匿名函数)


任何帮助都将不胜感激

AJAX代表
异步JavaScript和XML
。这里的关键部分实际上是异步部分。这意味着,当您向服务器发送信息请求时,浏览器会在后台获取信息,而不会干扰现有页面的显示和行为。因此,当涉及AJAX时,回调是巨大的——您不知道您的服务器是否需要500毫秒或3秒才能返回值,所以您真正能做的就是发送请求并说“完成后,我希望您这样做”。在您当前的代码中,在您尝试将值返回到函数之前,服务器很少有时间返回
getpic.php
所做的任何事情。您只需修改代码,以便
ajaxFunction
可以接受第二个参数,该参数是一个函数回调,然后在代码的
onreadystatechange
部分中运行。

AJAX代表
异步JavaScript和XML
。这里的关键部分实际上是异步部分。这意味着,当您向服务器发送信息请求时,浏览器会在后台获取信息,而不会干扰现有页面的显示和行为。因此,当涉及AJAX时,回调是巨大的——您不知道您的服务器是否需要500毫秒或3秒才能返回值,所以您真正能做的就是发送请求并说“完成后,我希望您这样做”。在您当前的代码中,在您尝试将值返回到函数之前,服务器很少有时间返回
getpic.php
所做的任何事情。你只需要修改你的代码,以便<代码> Ajax函数< /C>可以接受一个第二个参数,它是一个函数回调,然后运行在<代码> OnRead yStaseCudio代码的一部分。这是与“用正则表达式解析HTML”的标准,直到它被询问的频率。谢谢你的时间,非常感谢,现在你已经解释了,这完全是有道理的,因为我以前没有意识到这一点。谢谢你的时间,非常感谢,现在你已经解释了,这完全有道理,我在背后踢自己,因为我以前没有意识到这一点。英雄联盟
function ajaxFunction(id){
  var ajaxRequest;
  var response;
      try{
      // Opera 8.0+, Firefox, Safari
      ajaxRequest = new XMLHttpRequest();
      } catch (e){
      // Internet Explorer Browsers
      try{
      ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
      try{
      ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e){
      alert("Ajax Failed");
      return false;
    }
  }
}
ajaxRequest.onreadystatechange = function(){
  if(ajaxRequest.readyState == 4){
    response = ajaxRequest.responseText;
  }
}
ajaxRequest.open("GET", "http://priest/getpic.php?id="+id, true);
ajaxRequest.send(null);
return response;

}

function lightbox(id) {
var image;
var imageArr;
document.write(image);

image = ajaxFunction(id);
imageArr = image.split('|');

imageSrc = imageArr[0];
imageWidth = imageArr[1];
imageHeight = imageArr[2];

getElementById('lightbox').visibility=visible;
getElementById('lightboximg').src=imageSrc;

if(imageWidth > 700) {getElementById('lightboximg').width=700;}
if(imageHeight > 500) {getElemetnById('lightboximg').height=500;}


}