【问题标题】:Unable to POST JSON object from Javascript to a Servlet via AJAX无法通过 AJAX 将 JSON 对象从 Javascript 发布到 Servlet
【发布时间】:2013-02-28 10:30:50
【问题描述】:

我正在尝试通过 AJAX 将 JSON 对象发布到 servlet。但是,该对象在 servlet 中为空。我无法弄清楚这段代码有什么问题。

JAVASCRIPT

function submitValues(event, val1, val2) 
{    
var xmlHttpObj = new XMLHttpRequest();                
            if(window.XMLHttpRequest) 
            {
                xmlHttpObj = new XMLHttpRequest();                    
             }
            else if(window.ActiveXObject)
            {
                xmlHttpObj = new ActiveXObject("Microsoft.XMLHttp");

            }


     var jsonObject =  submitTheValues(event, val1, val2);
       alert("json is:" +jsonObject);
     var json = JSON.stringify(jsonObject);
       alert("json after stringify:" +json);

        xmlHttpObj.open("POST", "../myapp/myservlet", true);
        xmlHttpObj.setRequestHeader("Content-type", "application/json");                    
        xmlHttpObj.send(json);

}  

伺服器

String jsonObj = request.getParameter("json");

【问题讨论】:

    标签: javascript ajax json servlets post


    【解决方案1】:

    如果您想将数据作为参数接收,您必须将其发送为application/x-www-form-urlencode

    xmlHttpObj.open("POST", "../myapp/myservlet", true);
    xmlHttpObj.setRequestHeader("Content-type", "application/x-www-form-urlencode");                    
    xmlHttpObj.send('json='+encodeURIComponent(json));
    

    【讨论】:

    • 非常感谢。我已经为此挣扎了很多。它工作得很好。
    猜你喜欢
    • 2023-03-17
    • 2020-12-03
    • 2020-10-18
    • 2018-11-13
    • 1970-01-01
    • 1970-01-01
    • 2018-03-12
    • 2013-02-25
    • 2013-08-10
    相关资源
    最近更新 更多