Javascript 使用AJAX将表单提交到Servlet

Javascript 使用AJAX将表单提交到Servlet,javascript,html,ajax,servlets,Javascript,Html,Ajax,Servlets,我在onclick事件中附加了一个ajax脚本。打电话的时候,应该是 值,将其提交到servlet,以JSON形式接收响应,然后输出 它放在表格下方的一个div中 然而,当我点击按钮时,我什么也得不到。没有错误,没有输出 function ajax() { var xhr = new XMLHttpRequest(); var name = document.getElementById("name").value; var gender = document.getEl

我在onclick事件中附加了一个ajax脚本。打电话的时候,应该是 值,将其提交到servlet,以JSON形式接收响应,然后输出 它放在表格下方的一个div中

然而,当我点击按钮时,我什么也得不到。没有错误,没有输出

function ajax()
{
    var xhr = new XMLHttpRequest();
    var name = document.getElementById("name").value;
    var gender = document.getElementById("gender").value;
    xhr.open('GET', '/FormProcessor/?name='+name+'&gender='+gender,true);
    xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    //alert("before readystatechange");
    xhr.onreadystatechange = function()
    {
        if(xhr.readyState == 4 && xhr.status == 200)
        {
            var json = document.getElementById("json");
            json.innerHTML = xhr.responseText;
        }
    };
    xhr.send(null);
HTML

<body>
        <form >
            <select name="name" id="name">
                <option value="REG_01">Mike</option>
                <option value="REG_02">Jane</option>
            </select> &nbsp;
            <select name="gender" id="gender">
                <option value="F0101">MALE</option>
                <option value="F0102">MALE</option>
            </select>
            <input type="button" value="Get JSON" onclick="ajax()"/>
        </form>
        <div id="json">

        </div>
    </body>

迈克
简
男性的
男性的

如果我的servlet的url不正确,我至少应该得到一个错误吗?

如果您得到一个错误,那么
xhr.status
将永远不会是
200
(这意味着OK)。如果URL错误,您将得到
404
(未找到)。JavaScript控制台会怎么说?它是否显示任何消息?浏览器的“开发人员工具”的“网络”选项卡上显示了什么?它显示请求了吗?它是否显示了响应?您是否获得了所需的数据和HTTP状态代码?为什么要在请求上设置
内容类型
头?您正在发出GET请求,没有内容来描述文档的类型。什么是
document.getElementById(“reg”)
document.getElementById(“const”)
?它们与您提供的HTML中显示的元素不匹配。