下面是我在JSP中通过Ajax获取下拉列表项所实现的代码:
if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
var data = xmlHttp.responseText.split("~");
alert(data);
var listb = document.getElementById("listbox");
var textValue;
var optionItem;
for ( var count = 0; count < data.length; count++) {
textValue = (data[count]);
optionItem = new Option(textValue, textValue, false, false);
listb.options[listb.length] = optionItem;
}
}
但我在第一项中获得了更多文字:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
但我不会从它的到来。它来自哪里,我该如何解决?
答案 0 :(得分:2)
您似乎使用JSP而不是Servlet来返回ajax响应。也许您只是将该doctype放在该JSP的顶部,或者您正在使用的某个框架是在JSP响应中隐式添加它。
您不应该使用JSP进行Ajax响应。请改用servlet。创建一个servlet,将所需数据写入响应,并让Ajax调用该servlet的URL。还可以考虑使用JSON作为响应主体,而不是使用~
作为分隔符的String。 JSON不易出错,更容易在JavaScript中解析。