下面是我在 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">
但我没有从它来的地方得到。它从何而来,如何解决?
最佳答案
您似乎使用 JSP 而不是 Servlet 来返回 ajax 响应。也许您自己只是将该文档类型放在 JSP 之上,或者您正在使用的某些框架正在将其隐式添加到 JSP 响应中。
您不应该使用 JSP 进行 Ajax 响应。使用servlet反而。创建一个将所需数据写入响应的 servlet,并让 Ajax 调用该 servlet 的 URL。还可以考虑使用 JSON 作为响应正文,而不是使用 ~
作为分隔符的字符串。 JSON 不太容易出错,并且更容易在 JavaScript 中解析。
另请参阅:
关于javascript - 使用 AJAX 响应在 JSP 中填充下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7039320/