使ajax响应中的代码持久化

时间:2013-06-05 16:53:43

标签: javascript jquery ajax

我的代码中有一个AJAX调用,如下所示:

      var resultatAJAX = $.ajax({
        url: url,
        dataType: 'json',
        async: false,            
        success: function(data) {            

        }
      });              

      resultatAJAX.success(function(data) {               
        if (data == "false") {
          info_estancia[0]['foto'] = "null";
        }
      });

此调用执行一个php脚本,用于检查调用的url参数是否存在。工作良好。我在下面尝试做的是修改ajax调用之外存在的值,具体取决于响应是true还是false。

问题是我在成功函数中所做的更改不会生效:在成功函数之后,我检查“info_estancia [0] ['foto']”的值,并且它保持不变。

有没有办法让成功函数内的代码保持或以其他方式获得函数itsetf之外的ajax调用的响应?类似于:

      var resultatAJAX = $.ajax({
        url: url,
        dataType: 'json',
        async: false,            
        success: function(data) {            

        }
      });  

其中resultatAJAX获得了True / False响应。

修改

最后它有效,不要问我如何设置一些console.logs我改变了一些东西,并且一切都已修复。

我现在的问题是:我是否需要使用resultAJAX.success使更改持久化或在ajax调用woudl工作成功的同时做同样的事情?最好设置调用async然后??如果没有,我的coude将继续运行,也许“info_estancia [0] ['foto']”的价值不是理想的。我是不是很好?

1 个答案:

答案 0 :(得分:-1)

在定义回调函数之前,分配您想要访问变量的内容。

var reference = get_info_estancia(); //or access it how you like
resultatAJAX.success(function(data) {               
        if (data == "false") {
          reference[0]['foto'] = "null";
        }
      });