通过JSP AJAX提交表单后发送数据时,JSON.Stringify无法正常工作

时间:2018-08-17 06:16:41

标签: javascript java json jsp servlets

在我的JSP页面中,我试图通过AJAX调用将表单数据字符串化后,将其发送到servlet,以进行进一步处理。

function validateLoginForm() {

    var url = "<%=(request.getContextPath())%>/Login.do";
    var username = document.getElementById("username").value;
    var password = document.getElementById("password").value;
    var params = {  "username":username,
                    "password":password
                };

    var http = new XMLHttpRequest();
    http.open("POST", url, false);
    http.setRequestHeader("X-Requested-With","XMLHttpRequest");
    http.setRequestHeader("Content-type", "application/json");
    http.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            $("html").html(this.responseText);
        }
    };
    http.send(JSON.stringify(params));
    return true;
}


      <form name="loginForm" method="POST" autocomplete="off" onsubmit="return validateLoginForm()">
                                  ....
                                  ....
                                  ....

                                  <tr id="userNameRow">
                                    <th id="usernameLabel">Username</th>
                                    <td align="left"><input name="username" id="username" autocomplete="off" type="text" aria-describedby="loginError"></td>
                                  </tr>
                                  <tr id="userPwdRow">
                                    <th id="passwordLabel">Password</th>
                                    <td align="left"><input name="password" id="password" autocomplete="off" type="password"></td>
                                  </tr>

现在一切正常,但是如果我看到“网络”标签请求表单数据,则它只是纯ampersand separated

enter image description here

我在做什么错了?

更新

即使在我的浏览器的缓存,内存转储中,我也可以看到密码和用户名只是用&分隔,没有字符串化。

但是在我的servlet中,我必须解析并从JSON对象本身读取参数,

    JSONObject jsonObj = new JSONObject(requestBody);
    String username = (String) jsonObj.get("username");
    String password = (String) jsonObj.get("password");

0 个答案:

没有答案