function quti(i){
var xmlhttp;var data;
var url;
url="ajax_ti.asp?id="+ i + "&s=" + Math.random(); xmlhttp=GetXmlHttpObject()
xmlhttp.onreadystatechange=function nn(){
if (xmlhttp.readyState==4){
if (xmlhttp.status==200){
ssss=xmlhttp.responseText; 
alert(ssss);
}
else{
alert("题目下载失败!");
}
}
}
xmlhttp.open("get", url, true);
xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
xmlhttp.send(null);
}
怎么取ssss的值,在外面调用:quti(1)函数后,alert(ssss); 弹出提示,ssss没定义?这是为什么?而quti函数内的alert(ssss);弹出的是正常的.

解决方案 »

  1.   

    在quti外部定义ssss即可
    变量作用域问题
      

  2.   

    我已经在函数外var ssss;了   不起作用啊。为什么?
      

  3.   

    有点晕你问的,如果想在函数外面得到结果,那么在外面定义一个变量来保存AJAX的结果
    var r="";function quti(i){
    ...
       r=xmlhttp.responseText;
    ...
    }
      

  4.   

    先 alert(xmlhttp.responseText);如果xmlhttp.responseText为空或者未定义,
    创建xmlhttp对象有问题。
      

  5.   

    因为 ajax 读数据是异步的,因此那个地方不等数据返回,就顺序执行到下一个语句?所以会出错?