如何在进行ajax调用时将所有params作为单个对象传递

时间:2013-06-04 08:17:32

标签: javascript ajax json

我有以下js代码:

xmlhttp = GetXmlHttpObject();
if (xmlhttp != null) {
    var url = "/support/residential/outage/serviceOutage?cbrnum=" + cbrnum + "&btn=" + btn + "&outagetkt=" + outagetkt;
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById("thankyoucontent").innerHTML = xmlhttp.responseText;
        }
    }
    xmlhttp.open("POST", url, true);
    xmlhttp.send(null);
}

这通过在查询字符串中传递某些参数来调用servlet。现在我的问题是,我们可以将所有参数绑定到单个对象中,在查询字符串中单独发送该对象并使用servlet中的对象来检索参数值吗?有可能吗?

1 个答案:

答案 0 :(得分:2)

是的,您可以将数据作为JSON发送到服务器:

var data = {cbrnum: cbrnum, btn: btn};
var url = "...?data=" + encodeURIComponent(JSON.stringify(data));

然后在服务器端检索data的值并将JSON解析为本机数据类型(Converting JSON to Java)。

请注意,浏览器通常会对URL施加长度限制。如果您有大量数据,请改为执行POST请求。