当前位置: 首页 > 知识库问答 >
问题:

使用Ajax从Servlet中的doGet获取参数

平元明
2023-03-14
GET:<br> 
<input type="text" size="20" id="name2" onblur="validate2()"  
     onFocus = "document.getElementById('msg2').innerHTML = ' '">
<div id = "msg">&nbsp</div>
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    System.out.println("Get");
    System.out.println(request.getParameter("name2"));
    if(!request.getParameter("name2").equals("")) {
        numer = request.getParameter("name2");
        serviceConnection(request, response);
    }
}
function validate2() {
var idField = document.getElementById("name2");
var data = "name2=" + encodeURIComponent(idField.value);
if (typeof XMLHttpRequest != "undefined") {
    req = new XMLHttpRequest();
} else if (window.ActiveXObject) {
    req = new ActiveXObject("Microsoft.XMLHTTP");
}
var url = "Validator"
req.open("GET", url, true);
req.onreadystatechange = inserter2
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
req.send(data);

}

function inserter2() {
    if (req.readyState == 4) {
        if (req.status == 200) {
            var msg1 = req.responseText
            if (msg1 == "") {
                document.getElementById("msg").innerHTML = "<div style=\"color:red\">Wadliwa nazwa</div>";
                document.getElementById("org").value = '';
            } else {
                document.getElementById("org").value = msg1;
            }
        }
    }

如何解决这个问题?

共有1个答案

童花蜂
2023-03-14

你的错误在这里:

req.open("GET", url, true);
// ...
req.send(data);

在HTTP GET中,数据需要放在请求URL查询字符串中,而不是请求正文中。在请求正文中发送数据仅适用于POST。请求URL查询字符串是请求URL中之后的部分。

所以,应该这样做:

req.open("GET", url + "?" + data, true);
// ...
req.send();
    null
 类似资料:
  • 问题内容: 我已经开发了一个将信息发送到的HTML页面。在中,我正在使用方法和: 在调用Servlet的html页面代码中是: method = “get”在Servlet中使用时,我会获得id和password的值,但是在使用时method = “post”,id和password会设置为null。为什么在这种情况下我无法获取值? 我想知道的另一件事是如何使用Servlet生成或验证的数据。例如

  • 问题内容: 我在网上搜索了此主题,但找不到有效的示例。我会很高兴有人可以给我帮助。 这是我测试的。 在塞夫莱特 我在所有事情上都变得空虚 问题答案: 排序答案是此数据隐藏在请求中。 以下servlet是一个演示如何使用它的示例(我正在JBoss 7.1.1上运行它): 符合要求: 输出为: (注意:不起作用。打印在第4行的地图包含通常可以使用访问的所有数据。请注意嵌套对象符号→ )。 稍微与您的问

  • 我使用的是Apache Tomcat7.0 Servlet容器。我一直在研究JavaServer Faces中的请求处理。我可以在web.xml中看到以下配置块:

  • 问题内容: 我在网络上搜索了此主题,但找不到有效的示例。我会很高兴有人可以给我帮助。 这是我测试的。 在塞夫莱特 我在所有事情上都变得空虚。 问题答案: 排序答案是此数据隐藏在请求中。 以下servlet是一个演示如何使用它的示例(我正在JBoss 7.1.1上运行它): 符合要求: 输出为: (注意:不起作用。打印在第4行的地图包含通常可以使用访问的所有数据。请注意嵌套对象符号→ )。 与您的问

  • 问题内容: 我想将页面上的一些数据发送到servlet 所以我写了下面的jQuery来做到这一点 我使用所有数据构建一个json字符串,并将其直接发送到servlet 但是我不知道如何从servlet中的ajax获取全部数据 如果查看来自chrome的请求标头的Form Data段 您会看到整个json字符串是关键。 问题答案: 看这里, 您的归属是错误的。它不应该是字符串,而是真实的JSON对象

  • 我从jquery发送如下请求: 在servlet内部,我可以获得参数,但问题是参数包含序列化的表单数据:如下所示: 我知道我可以使用来获取数据,但我想确保--如果他们的方法简单与否?