javascript - 使用 AJAX 响应在 JSP 中填充下拉列表

标签 javascript ajax jsp

下面是我在 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/

相关文章:

java - Servlet 响应未显示在网页上

javascript - 如何对动态 AngularJS 表进行分页?

javascript - 当鼠标悬停在文本上时,jquery 工具提示不出现

javascript - JSON Api 调用 "POST"

javascript - 在 Django 的 ajax POST 期间禁止(CSRF token 丢失或不正确。)

java - 将多个数据值从一个 JSP 传递到另一个

javascript - jQuery - 展开/折叠所有按钮,Internet Explorer 问题

javascript - 垂直缩放 div 直到显示所有内容?

jquery - 使用 PhoneGap、ajax 和 web service.net 将图像上传到远程服务器

java - 使用表单创建一个简单的 Spring 应用程序