为什么我不能在get调用中捕获变量?

时间:2014-09-24 17:35:49

标签: ajax

这是我的代码:

var user_ip ="not found";

$.get("http://ipinfo.io", function(response) {
   var user_ip=response.ip; 
   alert("on line 749 user ip is " + user_ip);
}, "jsonp");
alert("on line 751 user ip is " + user_ip);

然而我的用户ip只保存在.get中,之后它总是恢复为“未找到”。

我知道这涉及使用回调来保存数据,但无法找到一个对我来说有意义的例子

1 个答案:

答案 0 :(得分:0)

那是因为回调是在

之后异步执行的
alert("on line 751 user ip is " + user_ip);

已被执行。

您可以执行here所示的同步GET请求,但我认为同步代码是不好的做法:)

第二个问题是您在回调函数范围内重新声明user_ip,这意味着全局user_ip不会像您原先想象的那样被覆盖。