在AJAX调用中设置变量?

时间:2012-02-26 16:03:16

标签: 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,我试图将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] .data设置为等于servlet返回的数据数组

3 个答案:

答案 0 :(得分:1)

你是如何决定推动“失败”的?请注意,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)
            });

答案 1 :(得分:-1)

为什么不像以下那样在AJAX中设置变量:

function(data){
    options.series[0].data=data;
}

但是,由于功能的原因,我还建议使用实际的$.ajax对象。

答案 2 :(得分:-2)

尝试使用完整的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
            });
});

编辑:删除了错误的陈述。