我有這個功能稱爲getQuotes(),並在它的結束,它顯示出CURRENTQUOTE正確的值的console.log()。VAR函數內沒有接收到正確的值 - 的JavaScript
function getQuote() {
$.ajax({
headers: {
"X-Mashape-Key": "xxx",
Accept: "application/json",
"Content-Type": "application/x-www-form-urlencoded"
},
url: 'https://andruxnet-random-famous-quotes.p.mashape.com/?cat=movies',
success: function(response) {
var r = JSON.parse(response);
currentQuote = r.quote;
currentAuthor = r.author;
console.log(currentQuote);
}
});
};
的一點是:當我打電話getFunction()(如下面的代碼),然後顯示我的變量CURRENTQUOTE的的console.log,它沒有接收到正確的值,但仍一個空的字符串被聲明。我究竟做錯了什麼 ?
$(document).ready(function() {
var currentQuote='';
var currentAuthor='';
getQuote();
console.log(currentQuote);
});
因爲它是一個AJAX請求,它可能需要一點時間。所以可能要等幾秒鐘才能嘗試'console.log(currentQuote)' – SaschaP
引用在這種情況下對JS屬性無關緊要,而且實際上你必須寫'Accept':'而不是使其有效。 – gyre
'$ .ajax'是異步的。你的代碼不是。這是故事。 – Nonemoticoner