如何从jquery.ajax()返回数组

时间:2013-06-17 10:22:52

标签: javascript jquery

我有这段代码:

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'返回一个值数组(字符串)???

2 个答案:

答案 0 :(得分:1)

由于ajax是异步执行的,因此无法从ajax请求返回值。

一种可能的解决方案是使用async: false标志使请求同步,但不建议这样做。

另一种解决方案是使用回调方法来处理ajax请求的结果

答案 1 :(得分:0)

您应该在服务器端JSON encode将数据作为JSON对象传回,并在此ajax调用中提及dataType :'JSON'