Jquery 在AJAX调用中设置变量?
我确信这很简单,但我似乎无法在AJAX请求中设置变量数据 我的servlet返回一个数字数组Jquery 在AJAX调用中设置变量?,jquery,Jquery,我确信这很简单,但我似乎无法在AJAX请求中设置变量数据 我的servlet返回一个数字数组 int[] array = {1,2,4,5,3,5,3,5}; response.setContentType("application/json"); response.setCharacterEncoding("UTF-8"); response.getWriter().write(new Gson().toJson(array)); 数据被传递到jquery,
int[] array = {1,2,4,5,3,5,3,5};
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(new Gson().toJson(array));
数据被传递到jquery,我试图将json数据存储为jquery数组
var test2 = [];
$.post("servlet", { info: data},
function(data) {
alert(data); // this alerts what i want stored...
test2.push(3); // testing if i can add 3 to test FAILS
});
test2.push(9); //this works
test2.push(9); //this works
options.series[0].data = test2;
为什么我不能通过ajax调用将数字推送到测试中
我想要的最终结果是设置options.series[0]。数据等于servlet返回的数据数组。请尝试使用完整的ajax函数,使用async:false
var test2 = [];
$.ajax({
url: "servlet",
async: false,
type: "post",
data: { info: data},
success: function(data) {
alert(data); // this alerts what i want stored...
test2.push(3); // testing if i can add 3 to test FAILS
});
});
已编辑:删除了错误的语句。您如何判断推送失败?请记住,3将在9之后很久添加,因为您的AJAX请求是异步的
var test2 = [];
$.post("servlet", { info: data},
function(data) {
alert(data); // this alerts what i want stored...
test2.push(3); // testing if i can add 3 to test FAILS
alert(test2)
});
为什么不在AJAX中设置变量,如下所示:
function(data){
options.series[0].data=data;
}
但是,我还建议使用实际的$.ajax对象,因为它的功能。我没有看到test2的任何变量声明。这是打字错误吗?是否触发了alertdata?重复的。我很确定test2.push3可以工作,你怎么知道它不工作呢;弹出1,2,4,5,3,5,3,5和test.push3不会被添加,因为我只需要在图表中输入数字。。9和9…您正在将test2分配给options.series[0]。数据,并且可能在调用成功回调之前绘制图表,这意味着在处理数据时,3尚未添加。但它肯定会被添加。一般来说,进行同步调用是一个糟糕的主意,因为它会冻结浏览器的UI。当然,您可以通过Ajax调用更改变量。当然,他可以更改该变量,问题是他何时检查it@Sinetheta:从什么时候开始同步请求是异步的?@Sinetheta:您可能错过了async:false。@LightnessRacesinOrbit:下面是一个虚构的同步调用示例。我把等待时间设置为5秒,你可以随意玩。请注意,无法滚动。这是我在这次讨论中的最后一句话,这是一次很好的讨论,我明白了你的观点:你只是把问题转移到了另一个变量中。我把图表调用移到了ajax请求中,这很有效。