ajax如何return responseText的值?

DTandt 2020-02-21 06:51:16

function ajax () {
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp=new XMLHttpRequest();
}
else{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("get","file.txt",true);
xmlhttp.send();
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4)
{
if(xmlhttp.status==200)
{
document.getElementById("txt1").innerHTML= xmlhttp.responseText;
//return xmlhttp.responseText;
}
else{
alert("读取失败");
}
}

}


上述代码就是读取localhost里的file.txt文件的内容,然后传到控件(id为txt1)中去,我现在想return xmlhttp.responseText的值,比如var x = ajax ();但ajax是异步的,要回调函数才能返回,我想知道这个回调函数该怎么写才能使x获取到xmlhttp.responseText的值?
...全文
149 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
DTandt 2020-02-22
  • 打赏
  • 举报
回复
但我要引用的时候, 比如说:
function text()
{
var a =ajax(function (data) {
var x = data;
return x; });
document.getElementById("txt1").innerHTML= a; //txt1是个textarea的id
........................
}
这样子印出a的值仍然是undefined,是我引用的方式有问题还是怎么样,怎么样才能把xmlhttp.responseText的值放到a里去?
DTandt 2020-02-22
  • 打赏
  • 举报
回复
明白了,多谢
天际的海浪 2020-02-22
  • 打赏
  • 举报
回复
我不是说了吗 用回调函数,ajax就没有返回值了。一切的后续操作都是在回调函数中进行

function text()
{
	ajax(function (data) {
		var x = data;
		document.getElementById("txt1").innerHTML= x;
		............后续操作都在回调函数中.........
  });
}
天际的海浪 2020-02-21
  • 打赏
  • 举报
回复
用回调函数,ajax就没有返回值了。一切的后续操作都是在回调函数中进行。

function ajax (callback) {
      var xmlhttp;
      if (window.XMLHttpRequest) {
          xmlhttp=new XMLHttpRequest();
      }
      else{
           xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
      xmlhttp.open("get","file.txt",true);
      xmlhttp.send();
      xmlhttp.onreadystatechange=function(){
          if(xmlhttp.readyState==4)
          {
            if(xmlhttp.status==200)
            { 
            	document.getElementById("txt1").innerHTML= xmlhttp.responseText;  
            	callback(xmlhttp.responseText);
            }
            else{
            alert("读取失败");  
            }            
          }        
      
}

ajax(function (data) {
	var x = data;
});

52,798

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧