如何从Ajax调用返回一个值到服务器

时间:2014-06-01 14:32:42

标签: javascript ajax

我对我的服务器进行ajax调用以检索一些记录并将它们作为JSON对象返回。 这是电话的代码

$(".reply").click(function (){

      $.ajax({
    url: "/ajax_up/",
    type: 'GET',
    dataType: "json",
    success: function (data) {
    sync_data=JSON.stringify(data)

    }

}); 

我试图使用返回的数据来构造网格,所以当我传递我在Ajax调用中声明为global的变量syncd_data时,它似乎未定义。

$(document).ready(function(){
        var data = source_data;
  //other code
        ..........................
        ..........................

但是当我在ajax调用中发出警报(sync_data)时如下:

$(".reply").click(function (){

          $.ajax({
        url: "/ajax_up/",
        type: 'GET',
        dataType: "json",
        success: function (data) {
        sync_data=JSON.stringify(data)

        }

    }); 

它正确显示数据。 我可以在Ajax调用之外使用这些数据吗? 任何帮助见解或示例将受到高度赞赏。 感谢

2 个答案:

答案 0 :(得分:1)

您需要确保在ajax调用的成功回调中调用该函数:

success: function (data) {
    sync_data=JSON.stringify(data);
    doSomething(sync_data);    
    }

这是因为AJAX是异步的,您需要在继续下一个事件之前确保您的呼叫已完成且成功。即使变量被声明为全局变量。

<强>更新

    var sync_data;

    $(document).ready(function(){

    $.ajax({
            url: "/ajax_up/",
            type: 'GET',
            dataType: "json",
            success: function (data) {
                 sync_data=JSON.stringify(data);    
               }
         });    

     });

这样,从AJAX请求返回后,您将确保sync_data在技术上填充在document.ready中。你现在可以在任何地方使用它。

答案 1 :(得分:0)

在您的ajax调用之前添加var sync_data = ""。在你的ajax调用之后,你可以通过alert(sync_data);

看到它的数据

通过在ajax调用之前添加变量使其可以使用ajax调用