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

How to pass all the params as a single object while making ajax call

本文关键字:参数 单个 对象 ajax 调用      更新时间:2023-09-26

我有下面的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中使用该对象来检索参数值?这可能吗?

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

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

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

请注意,浏览器通常会对URL施加长度限制。如果您有很多数据,请使用POST请求。