如何使用来自Ajax调用的ajax成功函数的响应数据

时间:2016-09-22 11:26:59

标签: jquery ajax

我有疑问,当我进行ajax调用,并且在成功函数中我获得json数据时,我无法使用它成功函数

 $.ajax({
        type: 'GET',
        url: url,
        dataType: 'json',
        success: function (response) {
            getData[name] = response;

        }
    });
 alert(getData[name]);

我的问题是如何在ajax调用中使用getData

5 个答案:

答案 0 :(得分:4)

问题是默认情况下Ajax请求是异步的
这意味着ajax将启动请求 然后执行:alert(getData[name]);然后在后台完成请求并调用成功函数。

所以实际上警报会在成功功能之前执行。 并做你想做的事你必须告诉ajax在完成之前不要执行任何事情,在其他病房集async: false
第二件事你必须在ajax范围之外声明变量,这样你就可以在ajax

之外访问它

最终代码为:

var getData;
$.ajax({
        type: 'GET',
        url: url,
        dataType: 'json',
        async: false,
        success: function (response) {
            getData[name] = response;

        }
    });
 alert(getData[name]);

答案 1 :(得分:1)

你必须在ajax调用之上声明该变量getData [name],以便你可以在它之后进行赋值。

var getData;
$.ajax({
        type: 'GET',
        url: url,
        dataType: 'json',
        success: function (response) {
            getData[name] = response;

        }
    });

答案 2 :(得分:1)

应避免使用async false。沿着异步播放并使用.done等事件来处理响应。这可以确保响应的处理与回调时控件的位置无关。你不在乎。

答案 3 :(得分:0)

在代码中使用属性“async:flase”并尝试一次

答案 4 :(得分:0)

AJAX代表

  

异步 JavaScript和XML。

当您致电if时,AJAX通话尚未完成,这就是alert未设置的原因。

您必须在成功回调中调用getData[name](或对其执行任何操作)。

alert