2016-04-26 114 views
1

我做了一个AJAX post请求,以“array”[value1,value2,value3,...,valueN]的形式从DB处理数据,以便稍后在chartJS对象。如何检索由AJAX请求返回的数据

AJAX请求:

$(document).ready($.post('callMeForAJAX.jsp', function(data){ 
    values = data; 
    console.log(data); 
})); 

不过,这并不在控制台上打印任何东西,即使我可以看到从Chrome浏览器开发工具的“网络”选项卡上的响应。

如何检索该数据(不超过字符串)以将其放置在Chart对象的“data”参数上?

callMeForAJAX.jsp:

<%@ page contentType="text/xml;charset=UTF-8"%> 
<% 

    String data = "["; 
    for(String s : InfoFacade.getData()){ 
     data += s+", "; 
    } 
    data += "]"; 
    response.getWriter().write(data); 

%> 

编辑:如果相关的,我使用的1.2.x jQuery的lib和我现在已经升级,无需更改2.X。

+0

JavaScript noob over here。请温和:) –

+0

'$(document).ready($。post()....);'是错的 – epascarello

回答

0

这里,我们去:

$.ajax({ 
       type: "POST", 
       url: "/yourUrl", 
       data: data, 
       dataType: 'html', 
       success: function (result) { 

         $("#yourIdContainerToShowResult").html(result); 


       } 
      }); 

希望它帮助;)

+0

您的解决方案似乎按预期工作。你能否纠正我的做法,说我做事情的方式有什么问题? 另外:如何将数据存储在AJAX请求之外的变量中?一旦我尝试在回调之外进行打印,它就没有定义。 –

+0

@AndrésBuitrago1.而不是$ .post()你可以使用$ .ajax() – praguan

+0

是的,我明白了。根据jQuery文档,这只是一个更短的方式来做到这一点,所以我决定使用这种方式。另一方面,你能帮助我解答关于如何将这些数据保存在全局变量中的第二个问题吗?这里是一个jsfiddle,所以你可以理解我想要做什么https://jsfiddle.net/zsjjcmjL/。 它一直说价值是未定义的。 –

0

$(document).ready()块是不正确的。 试试这个:

$(document).ready(function(){ 
    $.post('callMeForAJAX.jsp', function(data){ 
     values = data; 
     console.log(data); 
    }) 
}); 
+0

哦,我明白了。我必须在那里使用匿名功能。 但是,仍然没有任何东西显示在控制台中。 –

+0

确保您的请求网址是正确的。 –

+0

它是。我得到了正确的回应,但是它在函数中不会做任何事情。 –

0

尝试这个

$(函数(){

callMeForAJAX();

});

function callMeForAJAX(){ 
$.post("callMeForAJAX.jsp", function(data){ 
if(data.length > 0) 
console.log(data); 
else 
console.log("DATA NULL"); 
}); 
} 
+0

它不会在控制台上打印任何东西。 –

+0

检查是否(data.length> 0) –

+0

它不打印任何消息。 –