作者:Liberty_Ai2502871477 | 来源:互联网 | 2023-09-24 00:21
本文仅使用 js
放松,来一步步看看为什么Ajax调用servlet,网页上没有反应.
1.Servlet本身有没有错误?
在地址栏上单独输入servlet路径并传参,观察网页上是否有返回值,或者说,是否有正确的返回值。
正确无误?下一步.
有错误?则Servlet本身就存在问题,检查:
1) 数据库连接或操作是否有错误 ?
2) java方法是不是错误,如参数类型等,一些细枝末节没注意 ?
3) Java方法的调用,是不是调用时名称输入错误 ?
4) 等等…
servlet一定要能正确执行,不然会影响后面的问题的分析.
2.看看你的 readyState 与 status
if(xmlHttp.readyState == 4) {if(xmlHttp.status == 200) {...}
}
这两个不用我多说了吧,使用innerHTML来看看它们的数值:
document.getElementById("check").innerHTML = xmlHttp.readyState;
document.getElementById("check").innerHTML = xmlHttp.status;
readyState !=4 ? 或者 status !=200 ? 没事,只要是有数字,那就有对应的错误,可以自行去搜索解决方法。
本人的readyState没问题,但是status是404(NOT FOUND),同样情况的可以看下一步.
3.可能是映射(mapping)的问题
无论是IDE不自动生成的话,还是你后期改过servlet名称,
mapping都是需要注意的地方,去web.xml看看吧,很多都是因为没注意这个.
4. 退而求其次
到了这一步还没有解决问题? 我只能说,我也是…
但是我有个临时应付的方法,毕竟不可能因为这个一直逗留不前,接下来还有很多事呢…
没办法,使用绝对路径吧,如:
xmlHttp.open("POST", "/Platform/CheckServlet?id="+id);
这方法肯定不是一个好方法,但是我的servlet与web.xml也没发现问题,
ps.本文旨在和我遇到一样问题的朋友,又急着弄接下来的事情,所想出的临时方案
要是有方法解决此问题的老师朋友,希望也可以留言或者私信给我,在这里先谢谢了…