[英]Ajax with servlet - how can i manage to make doGet?
I have a function in Javascript which is checking my servlet: 我在Javascript中有一个函数正在检查我的servlet:
function validate() {
var idField = document.getElementById("name1");
var data = "name1=" + encodeURIComponent(idField.value);
if (typeof XMLHttpRequest != "undefined") {
req = new XMLHttpRequest();
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
var url = "Validator"
req.open("POST", url, true);
req.onreadystatechange = inserter
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
req.send(data);
}
function inserter() {
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
}
}
I have found out that: Instruction 我发现:说明
req.onreadystatechanged = inserter
req.onreadystatechanged =插入器
sets the function responsible for handling server response. 设置负责处理服务器响应的功能。
Inserter function which dynamically changes the content of a page will be invoked asynchronously in case the server response arrives. 如果服务器响应到达,则将异步调用动态更改页面内容的插入器功能。
On my servlet I am getting the parameter from my website: 在我的servlet上,我从我的网站获取参数:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println(request.getParameter("name1"));
if(!request.getParameter("name1").equals("")) {
serviceConnection(request, response);
}
}
Unfortunately when I try to do the same thing, but as the doGet, I can't do it at all...: 不幸的是,当我尝试做同样的事情,但是作为doGet时,我根本做不到...:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println(request.getParameter("name2"));
if(!request.getParameter("name2").equals("")) {
serviceConnection(request, response);
}
}
I was trying to change in the code of the ajax into: 我试图将ajax的代码更改为:
var url = "Validator/?" + data2;
req.open("GET", url, true);
req.onreadystatechange = inserter2;
But it doesn't work. 但这是行不通的。 How can I solve this problem?
我怎么解决这个问题? Shall I do something other than
我可以做其他事情吗
req.onreadystatechanged = inserter to have a doGet function?
req.onreadystatechanged =插入程序具有doGet函数?
Try with this code.. I corrected it cose you had misssing closing brackets, it should work now .. 尝试使用此代码。.我更正了它,因为您错过了右括号,它现在应该可以工作了..
function validate() {
var idField = document.getElementById("name1");
var data = "name1=" + 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 = inserter
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
req.send(data);
}
function inserter() {
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;
}
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.