0

我正在尝试将 JSON 响应存储到变量中,以便稍后处理它,我尝试了以下但得到 null,

function go(){
   var jsonObj = getJson(url);
   alert(JSON.stringify(jsonObj));
  }

function getJson(){
    return JSON.parse($.ajax({
        type: 'POST',
        url: 'url',
        dataType: 'json',
        global: false,
        async: false,
        success: function(data){
        return data;
        }
    }).responseText);
}

同时,我可以看到 JSON 内容打印在我的服务器控制台上。

编辑

谢谢摆脱..!解决了这个问题。您的解决方案在 IE8 中运行良好,但对于 Chrome 和 FireFox 在警报弹出窗口中仍然显示为“null”。我不认为它的浏览器特定修复..?

4

1 回答 1

1
$.ajax({
        type: 'POST',
        url: 'url',
        dataType: 'json',
        global: false,
        async: false,
        success: function(data){
         // do some stufs or assign data to a var
         window.myVar = data;
        }
   });

Ajax 是异步的,因此您需要将响应存储在回调中的变量中。在这个例子中,window.myVar 是一个包含响应数据的全局变量。在响应返回之前您无法访问该变量,您需要编写异步代码。

于 2012-12-24T12:19:28.847 回答