问题描述
今天想把ajax的返回值运行到其他的js当中,弄了好久都没有结果?求解决方法啊? var xmlHttp; function createXMLHttpRequest(){ if(window.ActiveXObject){ xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } else { xmlHttp = new XMLHttpRequest(); } } function sendServer() { var keyword = document.getElementById("test1").value; createXMLHttpRequest(); xmlHttp.open("GET",'ajax.php?keyword='+keyword,true); xmlHttp.onreadystatechange = callback; xmlHttp.send(); } function callback(){ if(xmlHttp.readyState == 4){ if(xmlHttp.status == 200){ var friendsData = xmlHttp.responseText; alert(friendsData); } else { alert(xmlHttp.status); } } } (function(){var friendsData = [{user:"FLY100",name:"u9646u7ef4u6881"},{user:"G_9o_Karr",name:"u4e01u6208"},{user:"LV5203344",name:"u8463u52c7"},{user:"VIVI520007",name:"u8587u8587"},{user:"WDQ826343036",name:"u5434u4e1cu5f3a"},{user:"ZZ-20100912",name:"u5218u73cd"},{user:"aa394378840",name:"u9c81u5229"},{user:"airiafans",name:"u7231RIAu96c6u7ed3u53f7"},{user:"alilya",name:"u9875u9762u59b9_u9648u601du5e06"},{user:"amity1985",name:"u7231u5fb7u57fau91d1u4f1a"},{user:"aoi_sola",name:"u82cdu4e95u8001u5e08"},{user:"austinjin",name:"AustinGeek"},{user:"bang",name:"bang"},{user:"beebuzz",name:"beebuzz"},{user:"bobo_js",name:"u8349u4f9du5c71"},{user:"by727938837",name:"u5348u591cu60c5u6bd2"},{user:"cailiangyu",name:"u5305u5b50"},{user:"mg345732481",name:"u5218u68a6u9f99"}]; 问题补充:sam.ds.chen 写道
解决方案
貌似你没有把它转成JSON啊,xmlHttp.responseText只是个text(String)而已。应该用eval的// var friendsData = xmlHttp.responseText;var friendsData = eval('('+xmlHttp.responseText+')');
解决方案二:
看了你的代码,我的理解是---你设置一个全局的js对象,把返回值付给设好的全局js对象,然后你在别的function或是其他地方,不就能用了貌似我也这么理解的
解决方案三:
建议用jqery的ajax得到ajax返回值。
解决方案四:
看了你的代码,我的理解是---你设置一个全局的js对象,把返回值付给设好的全局js对象,然后你在别的function或是其他地方,不就能用了
解决方案五:
先把他转成json对象存放在一个数组里面,然后再后台在用josn去接受。再在js里面你想怎么去调就怎么调,个人意见,仅供参考!!!
解决方案六:
[align=center][/align]我最近在做一个Portal项目,用到了JQuery 和Json .JQuery中有ajax方式去提交数据,我查询到结果集后用Json 库去将结果集转换成String 。然后到页面用eval()去转换一下就可以变成数组。到时候用JQuery each方法迭代以下就好了。
解决方案七:
用 jquery 非常简单,而且消除了不同浏览器、不同版本之间的差距。为什么不用呢?而且学习成本基本上1个多小时就搞定。
解决方案八:
后台未转成json对象
解决方案九:
xmlHttp.responseText返回的就是字符串,楼主确实应该给转一下,虽然你看到的结果是[{'KEY':'VALUE}]形式的,但只能说明这是JSON形式的字符串,并不是JSON对象!
解决方案十:
在你定义 var xmlHttp; 的地方再定义一个区域变量不就行了?var content = "";回调的方法把值赋值给 content = xmlHttp.responseText;其他js就可以用了, 长度是不是0就知道有没有加载值在里面了。
解决方案十一:
建议先用FireBug查看,是否有请求产生,及返回结果是否正常,还有返回状态,再找callback问题
解决方案十二:
会不会是服务器端没有返回呢?
解决方案十三:
如果你的生产环境使用JQuery允许的话,那么下面的代码可能对你有帮助。$.ajax({ type:'post', url:'ajax.php',//请求地址 data:{"param","value"},//请求参数 dataType:'json', //数据类型success:callback //请求成功处理函数}); function callback(data){ //data就是ajax调用后,返回的数据,想怎么使用就怎么使用 //do something }