2013-04-18 76 views
0

我使用这样的函数变量返回undefined值在JavaScript

function example(){ 
var a; 
$.ajax({ 
     url:"www.example.com/function", 
     type: 'POST', 
     success: function(result){ 
     a=result; 
      } 
    }); 

alert(a); 
} 

我需要AJAX功能

在这里我得到的结果是不确定的外部变量。我怎样才能在那里获得价值。 ?

+0

集异步:假的,让你相信的变量被设置。 – Alex

+0

A适用于异步。请阅读http://learn.jquery.com/ajax/key-concepts/ – Alepac

+0

@Alepac是的教程,并强制ajax-call是同步的,意味着代码将在警报代码执行之前执行。 – Alex

回答

8

您可以通过指定async: false来等待ajax调用返回。

function example(){ 
    var a; 
    $.ajax({ 
     url:"www.example.com/function", 
     type: 'POST', 
     async: false, 
     success: function(result){ 
      a=result; 
     } 
    }); 
    alert(a); 
} 
+0

哇....工作..感谢很多mridula :) –

+1

我认为你应该读一些关于什么设置异步真/假其实手段。下次可以帮助你。 – mridula

+0

我认为异步真实胜于假。 – Jai

4
var a = "I am defined"; 
$.ajax({ 
     url:"www.example.com/function", 
     type: 'POST', 
     success: function(result){ 
      a=result; 
      alert(a); 
     } 
    }); 


} 

一个是不确定的,直到success回调的ajax被调用。

+0

嘿..我想要它.. –

+0

ouside ajax函数..我知道你显示的方式 –

+0

如果你想这样,它将是未定义的。 – Triode

-1

设置变量a的默认值。

+0

也不能work.it将始终显示intitial值。而不是新的。 :( –

+0

你试过什么mridula说? – i2ijeya

+0

那工作.. :) –

0
I think you should return the value in the success function itself 

function example(){ 
var a; 
$.ajax({ 
     url:"www.example.com/function", 
     type: 'POST', 
     success: function(result){ 
      a=result; 
      alert(a); 
      return a; 
     } 
    }); 
}