0

我有这段代码:

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() 的“成功”返回一个值数组(字符串)???

4

2 回答 2

1

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

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

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

于 2013-06-17T10:26:00.043 回答
0

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

于 2013-06-17T10:29:56.870 回答