例如
var ajaxData=[];
$.post("/echarts/loginAction",{dataNumInView:60,startRow:0},function(data)
{
ajaxData.push(data.test);
});
这个data有办法取出来吗
是要把data放到其它地方使用或对data数据进行操作吗?
如果是
var ajaxData=[];
$.post("/echarts/loginAction",{dataNumInView:60,startRow:0},function(data)
{
ajaxData=data;
ajaxData.push(data.test);
});
改为$.ajax,并且将async设置为false同步请求,要是用$.post/$.get你只能将要执行的代码放到会滴里面,无法往外传递返回值
function ajaxcall() {
var ajaxData = [];
$.ajax({
dataType: 'json',
url: "/echarts/loginAction",
async:false,////////
data: { dataNumInView: 60, startRow: 0 }
, success: function (data) {
ajaxData.push(data.test);
}
});
return ajaxData
}
json $.each循环遍历 http://www.cnblogs.com/fredlau/archive/2008/08/12/1266089.html
你在服务端能取到传入的data吗?
如果能取到应该是data的数据类型问题,
尝试定义回调数据类型为json,或者用eval将data装成json对象
var obj = eval( "(" + data + ")" );
ajaxData.push(data.test);
方法两种:一种同步方式,一种异步方式
同步方式与showbo所讲基本相同,但需要考虑效率,网络不好时会是什么情况应该清楚,另要加入error: function()处理
由于javascript是单线程的,同步方式不是非常建议。
异步方式:
两个变量,一个是标志(主要用于判断是数据是已经接收到),一个是数据(存储接收的数据)
一个处理函数
post后,success:时更改标志变量,输出数据
error:时更改标志,
运行后执行数据处理
数据处理函数
判断标志,以确定数据是否已经接收,如果没有用延时或计时器,等待后再重新判断处理数据,或由success去激活数据处理数函数。
标志可设为0,1,2,等等
0:未接收到数据,1接收到数据,2,未接收到数据,psot出错即error
我能想到的就是先把data放进一个页面的元素里,让后在从这个元素里取
看了半天,让我很迷茫,ajaxData.push(data.test); 这不已经可以取到了嘛?
你还想怎么操作它。
你返回是什么格式的,确定能往数组里加?
要么像楼上说的,把AJAX调用改为同步的,
要么使用回调,
var ajaxData=[];
$.post("/echarts/loginAction",{dataNumInView:60,startRow:0},callbackFun);
function callbackFun(data){
ajaxData.push(data.test);
alert(data);
}
设置一个全局变量,然后将data值赋给这个全局变量即可