ResponseText 为 null,即使它应该设置为 JavaScript
ResponseText is null even though it should be set JavaScript
我有一个大问题,我的代码中没有看到任何错误。 程序应从字段p1
和p2
中添加两个值,并将它们上传到站点,而无需重新加载整个页面。我用简单的javascript做了,但我想使用AJAX。一切都已经完成,但某处有小错误。
我你看validate()
和insterter()
,警报有适当的价值
alert("data = "+data);
req.send(data);
但来自Insterter的味精只是空的。我不知道为什么。请帮忙。我想更正此代码。
var msg = req.responseText;
alert("msg = "+msg);
为什么味精为空的原因?
@WebServlet("/Serwlet")
public class Serwlet extends HttpServlet {
private static final long serialVersionUID = 1L;
static String KOD =
"<html>"+
"<head>"+
"<meta http-equiv='"Content-Type'" content='"text/html; charset=windows-1250'">"+
"<title>Testowanie</title>"+
"<script type='"text/javascript'" language='"javascript'" src='"servletD2Script.js'"></script>"+
"</head>"+
"<body>"+
"<div id='"msg1'">Pierwsza suma</div>"+
"<div id='"msg2'">Pierwsza suma</div>"+
"<center><h2>Testowanie parametrów</h2></center>"+
"<hr>"+
"<form method='"get'" action='"Serwlet'">"+
"p1<input type='"text'" size='"50'" name='"p1'" onblur='"validate()'"><br>"+
"p2<input type='"text'" size='"50'" name='"p2'" onblur='"validate()'"><br>"+
"<br><input type='"submit'" value='"Wyślij formularz by GET'">"+
"</form>"+
"</hr>"+
"<hr>"+
"<form method='"post'" action='"Serwlet'">"+
"p3<input type='"text'" size='"50'" name='"p3'" onblur='"funkcja()'"><br>"+
"p4<input type='"text'" size='"50'" name='"p4'" onblur='"funkcja()'"><br>"+
"<br><input type='"submit'" value='"Wyślij formularz by POST'">"+
"</form>"+
"</hr>"+
"</body></html>";
public Serwlet() {
super();
}
static boolean raz = true;
private void serviceRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
response.setHeader("Cache-Control", "no-cache");
PrintWriter out = response.getWriter();
if(raz){out.print(Serwlet.KOD);raz = false;}
String name = request.getParameter("name"); // dostaję nazwisko
String org = ""; //jakas wartosc
out.write(org != null ? org : ""); // zwracam organizację lub pusty napis, jesli nie znam nazwiska
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
serviceRequest( request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
serviceRequest( request, response);
}
}
var req;
function validate() {
//var idField = document.getElementById("name");
var wrt1 = document.getElementById("p1").value;
var wrt2 = document.getElementById("p2").value;
var data = eval(wrt1)+eval(wrt2)+"";
if (typeof XMLHttpRequest != "undefined") {
req = new XMLHttpRequest();
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
var url = "Serwlet";
req.open("POST", url, true);
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
alert("data = "+data);
req.send(data);
req.onreadystatechange = inserter;
}
function inserter() {
if (req.readyState == 4) {
if (req.status == 200) {
var msg = req.responseText;
alert("msg = "+msg);
if (msg == "") {
document.getElementById("msg1").innerHTML = "<div style='"color:red'">"+"MSG WAS EMPTY"+"</div>";
//document.getElementById("msg1").value = "blabla";
}
else
document.getElementById("msg1").innerHTML = "<div style='"color:red'">"+msg+"</div>";
//document.getElementById("msg1").value = "COOOO JEST";
}
}
}
这部分代码总是被调用,MSG 是 ">
if (msg == "") {
document.getElementById("msg1").innerHTML = "<div style='"color:red'">"+"MSG WAS EMPTY"+"</div>";
//document.getElementById("msg1").value = "blabla";
}
raz
似乎只为真一次,所以下次你输入servlet时,你不要在if语句中输入,也不打印Serwlet.KOD
。
那我不明白:
String org = ""; //jakas wartosc
out.write(org != null ? org : "")
它总是打印一个空字符串,这是没有用的。
此外,最好用 out.close();
结束serviceRequest
方法。
相关文章:
- 通过Javascript设置Telerik RadTreeView属性,如OnClientNodeExpanded
- 使用javascript设置iframe的高度
- 通过JavaScript设置表单目标
- 如何确定相对较新版本的IE的高度和宽度(IE8不喜欢从JavaScript设置这种样式吗?
- 通过JavaScript设置的表单字段的值不会作为$_POST的一部分传递给PHP脚本
- 如何在Internet Explorer中使用javascript设置cookie
- Javascript设置日期不起作用,显示错误的时间
- iOS Safari Javascript设置超时问题
- 使用Javascript设置库中图像包装器的宽度
- 如何检查日期选择器和时间选择器元素是否使用JQuery/Javascript设置
- 如何使用javascript设置元素旋转和动态观察的动画
- 在 PHP 块中使用 Javascript 设置 HTML 文本框的值(使用 echo)
- 通过javascript设置IE特定的css样式
- Javascript-设置cookie并拉入ID
- ASP从Javascript设置控件值
- 尝试使用window.innerHeight和Javascript设置图像高度
- 使用JavaScript设置整个页面的字体大小
- 使用纯Javascript设置最小高度属性
- 如何通过javascript设置支柱列表2
- 使用 JavaScript 设置 的点击