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

时间:2011-08-12 11:17:41

标签: 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">

但我不会从它的到来。它来自哪里,我该如何解决?

1 个答案:

答案 0 :(得分:2)

您似乎使用JSP而不是Servlet来返回ajax响应。也许您只是将该doctype放在该JSP的顶部,或者您正在使用的某个框架是在JSP响应中隐式添加它。

您不应该使用JSP进行Ajax响应。请改用servlet。创建一个servlet,将所需数据写入响应,并让Ajax调用该servlet的URL。还可以考虑使用JSON作为响应主体,而不是使用~作为分隔符的String。 JSON不易出错,更容易在JavaScript中解析。

另见:

相关问题