0

我想通过 jquery 的 ajax 调用从 grails 操作中接收一些数据。
直到现在我使用 ajax 调用只是为了接收一些字符串,但现在我想接收一些列表(许多列表)。
这是我的行动

def getSpecificData() {
        **some code here**
        render (list:[10,20,30,40],list2:[20,30,40]);
    }

我的jQuery调用:

jQuery.ajax({
                    type: 'POST',
                    url: graphUrl,
                    data: "xaxis="+$(this).val(),
                    async: true,
                    success: function(response,textStatus){
                        console.log(response);

                     },
                    error:function(XMLHttpRequest,textStatus,errorThrown){}
                });

控制台日志['list':[10, 20, 30, 40], 'list2':[20, 30, 40]] 基本上只是一个字符串,但我想要两个列表作为响应,这可能吗?
我想要那些 list1 和 list2 作为响应数据。有什么办法吗?
我想我可以从列表中创建一个 json(两个列表的 2 个元素),然后将 json 字符串转换为数组。
但这看起来很混乱,所以有人有更好的主意吗?

4

1 回答 1

1

让服务器渲染一个带有 JSON 列表的地图:

render ([list:[10,20,30,40],list2:[20,30,40]] as JSON)

您可能需要导入 JSON 转换器:

import grails.converters.JSON

然后让你的 AJAX 看起来像这样:

jQuery.ajax({
                type: 'POST',
                url: graphUrl,
                data: "xaxis="+$(this).val(),
                async: true,
                dataType: "",
                success: function(dataReceived,textStatus){
                    console.log('list:', dataReceived.list);
                    console.log('list2:', dataReceived.list2);
                 },
                error:function(XMLHttpRequest,textStatus,errorThrown){}
            });

您可能需要考虑使用简写jQuery.post(url, data, successCallback)

于 2013-10-22T10:58:37.010 回答