Javascript 使ajax响应中的代码持久化

Javascript 使ajax响应中的代码持久化,javascript,jquery,ajax,Javascript,Jquery,Ajax,我的代码中有一个AJAX调用,如下所示: var resultatAJAX = $.ajax({ url: url, dataType: 'json', async: false, success: function(data) { } }); resultatAJAX.success(function

我的代码中有一个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调用外部存在的值,具体取决于响应是真是假

问题是,我在success函数中所做的更改没有生效:在success函数之后,我检查info_estancia[0]['foto']的值,它保持不变

有没有办法使success函数中的代码持久化,或者以其他方式在函数itsetf之外获得ajax调用的响应??类似于:

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

        }
      });  
其中Resultajax得到了正确/错误的响应

编辑

最后它成功了,不要问我怎么做,但设置一些控制台。日志我相信有些东西改变了,所有的都被修复了


我现在的问题是:我需要resultAJAX.success使更改持久化,还是在ajax调用成功的情况下也需要这样做??最好将调用设置为异步,然后??如果没有,我的代码将继续运行,并且可能info_estancia[0]['foto']的值将不是期望的值。是否正确?

在定义回调函数之前,为变量指定要访问的内容

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

如果使用回调,为什么要将async:false设置为?另外,您确定数据确实是假的,并且回调实际上正在运行吗?向我们展示它以前有什么值,以及您如何检查它是否已更改。您真的希望\false\作为响应吗?向我们展示这一点,并确保success回调中的if语句已实际计算。async设置为false,因为我重新使用了另一个调用中的代码。这是真的,如果我使用回调,它不需要设置为false。该回调被触发,并且数据中的返回值为true或false,因此它可以工作。Bergi:在我发布的代码之后是一个控制台;要查看变量的当前值,以及当触发回调且数据==false时,它会保留旧值,而不是我尝试在回调中设置的null。您是否也记录了数据?然后尝试控制台。logtypeof数据,它会产生什么?@AlbertPrats:你确定if语句的条件实际上是真的吗?这会有什么区别?请解释一下这项改变会有什么帮助。也许他的名字空间变得混乱,回调中的信息不是他想要的。