我有这段代码:
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,但是当我在控制台中打印建议时,我有:
suggest: [object Object]
而不是我的数组。问题是:如何从jQuery.ajax()的'success'返回一个值数组(字符串)???
答案 0 :(得分:1)
由于ajax是异步执行的,因此无法从ajax请求返回值。
一种可能的解决方案是使用async: false
标志使请求同步,但不建议这样做。
另一种解决方案是使用回调方法来处理ajax请求的结果
答案 1 :(得分:0)
您应该在服务器端JSON encode
将数据作为JSON
对象传回,并在此ajax调用中提及dataType :'JSON'
。