2014-01-06 49 views
0

我在论坛中研究过这个问题,但在应用技术人员给出的答案中应用代码时无法成功。我试图访问jQuery成功函数内部的变量。它在初始化时被赋值为null时抛出null。我怎样才能访问Ajax调用外的数据值?另外我的Stringified结果在json字符串中显示“/”斜杠。我如何删除代码中的斜杠。我尝试应用正则表达式,替换/引用,但没有用。请建议。在成功函数外部访问jQuery变量抛出null

var details=null; 

     $.ajax({ 
      type: "GET", 
      url: "/Default/GetDetails", 
      contentType: 'application/json; charset=utf-8', 
      dataType: 'json', 
      success: function (data) { 
       details = JSON.stringify(data);    
      }, 
      error: function (xhr, ajaxOptions, thrownError) { 
       alert(xhr.statusText); 
      } 
     }); 
    alert(details) 
+0

这不是从ajax调用获取响应的重复。我能够成功地得到响应。我在成功函数中获取数据,并且我想在ajax函数之外使用该响应.. – Kurkula

+2

它是重复的。如果你阅读这个问题,你会了解你为什么不能做你想做的事,以及如何正确地做。 – Barmar

+0

您在AJAX调用完成之前发出警报,因为AJAX是异步的。 – Barmar

回答

-4

尝试在你的Ajax调用

async:false 
+1

因为这会锁定用户界面线程,所以这通常是个坏主意,而且首先也是最糟糕的用户体验! –

2

正常执行将不会等待AJAX​​块完成执行添加更多的选项。 因此,在结果被ajax指定为之前,细节的值将被提醒,即使是。 这就是警报显示为空的原因。

如果你想提醒细节的结果你可以在ajax调用中调用它。