繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM