通过回调函数获取AJAX的responseText
2016-09-25 00:00
295 查看
项目需求:
我在url1中解析responseText,获得jsonObj,判断里面data[0]==1,如果成立,那么要去URL2里去拿另一个数据。然后对数据进行处理。
但是,另一个AJAX请求返回不了responseText。
之前用的办法是定义一个参数STR,外围还有一个函数包裹着这两个函数的函数,通过定义参数的方式,操作responseText值。
但是新的需求这样不能做。所有学习了个新技能。
我是一个水前端,简称水端....
我在url1中解析responseText,获得jsonObj,判断里面data[0]==1,如果成立,那么要去URL2里去拿另一个数据。然后对数据进行处理。
var xhr = getXhr(); xhr.open("get",url1); xhr.send(null); xhr.onreadystatechange = function () { if (xhr.status == 200 && xhr.readyState == 4) { var jsonObj = JSON.parse(xhr.responseText); if(jsonObj.data[0]==1){ var aa= getOther();//另一个AJAX请求。 console.log(aa); } } } }
但是,另一个AJAX请求返回不了responseText。
function getOther(){ var chapterXhr = getXhr(), data; chapterXhr.open("get",url2, true); chapterXhr.send(null); chapterXhr.onreadystatechange = function () { if (chapterXhr.status == 200 && chapterXhr.readyState == 4) { data=JSON.parse(chapterXhr.responseText); } }; return data;//返回打印是undefined }
之前用的办法是定义一个参数STR,外围还有一个函数包裹着这两个函数的函数,通过定义参数的方式,操作responseText值。
function getOther(str) { if (str != undefined) { str = ''; } var chapterXhr = getXhr(), data; chapterXhr.open("get",url2, true); chapterXhr.send(null); chapterXhr.onreadystatechange = function () { if (chapterXhr.status == 200 && chapterXhr.readyState == 4) { str =JSON.parse(chapterXhr.responseText); } }; } } };
但是新的需求这样不能做。所有学习了个新技能。
var xhr = getXhr(); xhr.open("get",url1); xhr.send(null); xhr.onreadystatechange = function () { if (xhr.status == 200 && xhr.readyState == 4) { var jsonObj = JSON.parse(xhr.responseText); if(jsonObj.data[0]==1){ otherAJAX(function(data){ console.log(data); }); } } } } function otherAJAX(callback){ var chapterXhr = getXhr(); chapterXhr.open("get",url2); chapterXhr.send(null); chapterXhr.onreadystatechange = function () { if (chapterXhr.status == 200 && chapterXhr.readyState == 4) { callback(JSON.parse(chapterXhr.responseText));//输出为正确的报文 } }; }
我是一个水前端,简称水端....
相关文章推荐
- 对于ajax的responseText方法获取服务器中文本内容出错
- Ajax 获取 responseText 形式的响应数据(二)
- ajax引擎对象通过responseText属性 或者responseXML属性 接收服务器回送的数据
- Ext.Ajax.Request 如何将response.responseText作为函数返回值返回?
- 使用ajax提交,第一次进入error:{"readyState":0,"responseText":"","status":0,"statusText":"error"},第二次才能通过
- 通过GetPixel()函数获取鼠标点击处的象素颜色判断该点是否在曲线上
- Delphi通过解析搜狐网页来获取天气的函数
- 通过HttpWebResponse和HttpWebRequest 获取http地址上的图片
- 使用ajax的prototype框架时返回的responseText值的问题
- aspxgrid客户端新增一行时通过回调来获取某一列的值
- 终于搞定通过联通vac提供的wsdl获取response的xml包
- AJAX responseText乱码解决
- AJAX在ResponseText后出现乱码的解决方法
- c#中的Ajax上手篇---非同步请求responseText
- ajax responseText返回的却是整个网页的HTML代码
- 向系统注册回调(Callback)函数的方法--获取电话状态更新和短信接收通知
- Ajax的一些有用的小技巧(特别是ie通过ajax用responseXML获得xml的处理)
- AJAX在ResponseText后出现乱码的解决方法
- 通过loadPicture函数来获取图片的高与宽和缩放,解决客户端再按比例缩小
- Ajax 通过id 获取名字 以及 所属班级