2016-08-29 59 views
2

對不起,我知道我的問題以不同的形式問很多人,但我很失望找到一個決定我的問題。從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()中取出一個值並將此值賦給全局變量?我嘗試了谷歌搜索,並試圖決定這個問題,但...

+0

'kor'是在全球範圍內,所以你可以從成功的功能指定'msg'它。 – yuriy636

回答

1

是的,您的預感是正確的 - 該函數將result作爲空字符串返回,因爲成功處理程序稍後會在服務器響應返回時調用。如果你希望做一些具體的當響應進來,這樣做是成功的響應處理,像這樣:

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

大部分時間邏輯去成功功能裏面,無論你將做響應在成功function.I認爲你可能會更多的時間獲取應用程序內的代碼結構和數據流。 祝您好運