Javascript Servlet可以';t读取XMLHttpRequest参数
我正在从JavaScript创建HTTP POST请求,如下所示:Javascript Servlet可以';t读取XMLHttpRequest参数,javascript,java,servlets,xmlhttprequest,Javascript,Java,Servlets,Xmlhttprequest,我正在从JavaScript创建HTTP POST请求,如下所示: <!DOCTYPE html> <html> <head> <meta charset="ISO-8859-1"> <title>Insert title here</title> </head> <body> <input id="num" type="text" /> <input type="b
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<input id="num" type="text" />
<input type="button" id="btn" value="submit" onclick="func()"/>
<script>
function func() {
var num = document.getElementById("num").value;
var request = new XMLHttpRequest();
request.open("POST", "/Servlet/MyServlet", true);
request.onreadystatechange = function() {
if(request.readyState == 4 && request.status == 200) {
... }
};
request.setRequestHeader("Content-Type", "application/www-x-form-urlencoded");
request.send("num=" + num);
}
</script>
</body>
</html>
已调用servlet,但参数为
null
您的代码似乎正常,请尝试打印通过request.getParameterMap()获得的所有参数代码>
在num变量中作为参数传递的是什么?我假设它是一个数字,但如果它是一个字符串,您需要确保它也是URL编码的找到了问题:它是setRequestHeader
行。您的是application/www-x-form-urlencoded
,应该是application/x-www-form-urlencoded
。尝试将下面的行替换到代码中。否则,您的代码工作起来很有魅力(我已经尝试过了)
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
...
int num = Integer.parseInt(request.getParameter("num"));
}
request.setRequestHeader("Content-type","application/x-www-form-urlencoded");