[英]how to return array from jquery.ajax()
我有這段代碼:
var suggest=$.ajax({
cache: true,
type: 'GET',
url: solrServer + "suggest?q=" + valore + ec + "wt=json&omitHeader=true&json.wrf=?",
dataType: "jsonp",
success: function (data) {
data = parse();
function parse() {
var parsedQueries = [];
for (var i = 0; i < data.spellcheck.suggestions[1].suggestion.length; i++) {
console.log('i_esimo: ' + data.spellcheck.suggestions[1].suggestion[i]);
parsedQueries[i] = data.spellcheck.suggestions[1].suggestion[i];
}
return parsedQueries;
}
}
});
console.log('suggest: ' + suggest);
當我在控制台中打印時:
console.log('i_esimo: ' + data.spellcheck.suggestions[1].suggestion[i]);
我可視化響應的所有元素,並在數組parsedQueries分配響應之后,最后返回parsedQueries,應將其分配給我的var建議,但是當我在控制台建議中打印時,我有:
suggest: [object Object]
而不是我的價值陣列。 問題是:如何從jQuery.ajax()的“成功”返回值數組(字符串)?
由於ajax是異步執行的,因此不可能從ajax請求中返回值。
一種可能的解決方案是使用async: false
標志使請求同步。但是不建議這樣做。
另一個解決方案是使用回調方法來處理ajax請求的結果
您應該在服務器端JSON encode
數組進行JSON encode
,然后將其作為JSON
對象傳輸回去,並為此在ajax調用中提及dataType :'JSON'
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.