获取ajax请求的值并提供全局变量

时间:2016-08-29 20:43:24

标签: 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()中取出一个值并将此值赋给全局变量?我尝试谷歌搜索并尝试决定这个问题,但是......

2 个答案:

答案 0 :(得分:1)

是的,您的预感是正确的 - 该函数将result作为空字符串返回,因为稍后在返回服务器响应时调用成功处理程序。如果您希望在响应进入时执行某些特定操作,请在成功响应处理程序中执行此操作,如下所示:

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

答案 1 :(得分:0)

大多数情况下逻辑进​​入成功函数,无论你在响应中做什么,都会在成功函数中执行。我认为你可能会花更多的时间来处理代码结构和应用程序内部的数据流。 祝你好运