javascript - 从ajax请求中获取值并赋予全局变量

标签 javascript jquery ajax

抱歉,我知道我的问题以不同的形式问过很多人,但我很失望找到我的问题的决定。

function testAjax(){       
     var result = "";
     $.ajax({
         type: "POST",
         dataType: 'jsonp',
         url: "https://api.novaposhta.ua/v2.0/json/",
         data: {
             "modelName": "Address",
             "calledMethod": "getCities",
             "methodProperties": {}, 
             "apiKey": "6f94a6391cb5134ee68ddb7924de2a3d"
         },
         success: function(msg) { result = msg }});
     return result;
}
var kor = testAjax();
console.log(kor);

我需要从 ajax 请求中取出 data 并将这个 data 分配给一个全局变量。但是函数 testAjax 什么都不返回。我认为 testAjax 不返回任何内容,因为它是对服务器的异步请求,并且比 return result 晚完成。 我的问题 - 如何从 $.ajax() 中取出一个值并将该值赋给一个全局变量?我尝试谷歌搜索并尝试解决这个问题,但是......

最佳答案

是的,您的预感是正确的 - 该函数返回的 result 是一个空字符串,因为稍后在返回服务器响应时会调用成功处理程序。如果您希望在收到响应时做一些特定的事情,请在成功响应处理程序中这样做:

...
success: function(msg) {
    // now you have the response so do something with it
    console.log(msg);
}
...

关于javascript - 从ajax请求中获取值并赋予全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39214872/

相关文章:

javascript - 本地搜索 v-data-table Vuetify

javascript - 如何动态选择我的 ajax 响应内容类型?

javascript - IE 中未定义的 selectedIndex

javascript - 加载时跳转到 div 的底部

javascript - 检查嵌入项目中 div 的值

jQuery 选项卡和子选项卡

javascript - 带有 JSViews 事件绑定(bind)的 JSRender 与全局辅助函数抛出错误 e.apply 不是函数

jquery-plugins - jquery contextMenu + .live

javascript - 使用 AJAX 加载 Bootstrap 选择器

javascript - Ajax - 从 PHP 加载表后调用 AJAX 函数