我试图找出为什么我无法从ajax请求中获取变量值。这是我的代码:
country_locator = function() {
var country_iso;
$.getJSON("https://api.wipmania.com/jsonp?callback=?", "", function(json) {
country_iso = json.address.country_code;
});
return country_iso;
}
我也尝试过:
$.ajax({
url: "https://api.wipmania.com/jsonp?callback=?",
async: false,
dataType: "json",
success: function(data) {
country_iso = data.address.country_code;
}
});
和
var country_iso;
country_locator = function() {
$.getJSON("https://api.wipmania.com/jsonp?callback=?", "", function(json) {
country_iso = json.address.country_code;
}).success/complete(function() {
return country_iso;
});
}
但是alert(country_locator());
我得到一个未定义的变量错误。
我找到了这个链接:Get the variable of a json request outside the function (jquery)但是没有设法让它发挥作用。
答案 0 :(得分:1)
因为$.getJSON
是异步函数。 country_iso
将无法填写您的请求ajax complete。
我建议使用deferred:
来执行此操作var country_iso;
country_locator = function() {
$.getJSON("https://api.wipmania.com/jsonp?callback=?", "", function(json) {
country_iso = json.address.country_code;
});
}
country_locator().success(function() {
// do your logic here and use `country_iso` variable here.
});