Javascript Ajax参数在传递给Java控制器时会被加密

Javascript Ajax参数在传递给Java控制器时会被加密,javascript,java,jquery,ajax,Javascript,Java,Jquery,Ajax,我在Javascript中有一个名为itemInfo的对象- itemInfo = { catalogId:[{"catId":"RS-122-2001","quantity":"1"},{"catId:"RS-122-2002","quantity":"1"}] } 我通过ajax将这个对象传递给java控制器- $.ajax({ type: 'GET', url: '/bin/path/servlet',

我在Javascript中有一个名为itemInfo的对象-

   itemInfo = {

catalogId:[{"catId":"RS-122-2001","quantity":"1"},{"catId:"RS-122-2002","quantity":"1"}]

}
我通过ajax将这个对象传递给java控制器-

    $.ajax({
            type: 'GET',
            url: '/bin/path/servlet',
            dataType: 'text',
            data: {
                productId: itemInfo.catalogId,
                operation: "addToCart"
            },
            success: function(obj) {
                if (obj) {
                    //do something
                }
            },
            error: function(request, status, error) {
                console.log(request.responseText);
            }

        });
当我看到请求时,它是这样发送的-

<<hostName>>/bin/path/servlet?productId%5B0%5D%5BcatId%5D=RS-122-2001&productId%5B0%5D%5Bquantity%5D=1&productId%5B1%5D%5BcatId%5D=RS-122-2002&productId%5B1%5D%5Bquantity%5D=1&operation=addToCart
productId[0][catId]=RS-122-2001&productId[0][quantity]=1&productId[1][catId]=RS-122-2002&productId[1][quantity]=1&operation=addToCart

它在Java中没有任何意义,传递的值不可读。实现有问题吗?如何在Java控制器中检索传递的值

尝试对数据进行字符串化:

productId: JSON.stringify(itemInfo.catalogId)
顺便说一下,我认为用“GET”方法发布复杂对象不是一个好主意。
我建议将servlet更改为接受方法“POST”,然后将脚本类型修改为“POST”

尝试对数据进行字符串化:

productId: JSON.stringify(itemInfo.catalogId)
顺便说一下,我认为用“GET”方法发布复杂对象不是一个好主意。
我建议将servlet更改为接受方法“POST”,然后将脚本类型修改为“POST”

这只是url编码。是的,我理解。但为什么它是编码的?我如何在java中访问字段?这只是url编码。是的,我理解。但为什么它是编码的?我如何访问java中的字段呢?首先,我必须将完整的值转换为JSON对象,而不是直接访问参数。然后通过迭代JSON对象来访问值,而不是直接访问参数,首先我必须将完整的值转换成JSON对象。然后通过迭代JSON对象访问值。