在奇怪的情况下,ajax responseXML即将出现

时间:2009-10-09 06:53:55

标签: ajax

我有两个jsp页面,index.jsp和Result.jsp。在index.jsp中,我有一个文本框和一个Div。当用户在文本框中写入内容时,带有当前日期的文本应显示在Div中。在文本框的keyup事件中,我向Result.jsp发送Ajax请求。使用responseText方法一切正常。但是,当我从服务器发送xml并尝试使用responseXML方法时,不能使用以下Result.jsp -

<%@ page import="java.util.Date"%>
<%
    response.setContentType("text/xml");
    Date now = new Date(); 
    StringBuffer sb = new StringBuffer("<?xml version='1.0' ?><root>");
    String name = request.getParameter("name");
    sb.append("<data>");
    sb.append(name + " / " + now);
    sb.append("</data>");
    sb.append("</root>");
    out.print(sb);
%>

在这种情况下,responseXML返回null。

但是它使用了以下Result.jsp -

<%
    response.setContentType("text/xml");
    java.util.Date now = new java.util.Date(); 
    StringBuffer sb = new StringBuffer("<?xml version='1.0' ?><root>");
    String name = request.getParameter("name");
    sb.append("<data>");
    sb.append(name + " / " + now);
    sb.append("</data>");
    sb.append("</root>");
    out.print(sb);
%>

在以前的情况下,我无法理解&lt;%@ page import =“java.util.Date”%&gt; 的问题。

3 个答案:

答案 0 :(得分:0)

尝试使用Fiddler或Firebug,然后检查请求的响应。 或者也许比较responseText和responseXML的值。如果内容类型正确,请检查响应标头。

答案 1 :(得分:0)

您是否收到第一个版本的错误消息(检查日志)?如果是,请发布。

我对JSP并不熟悉,但我猜到最后缺少的空间

Date"%> vs Date" %>

没关系。

您是否尝试导入整个软件包而不是特定类?

<%@ page import="java.util.*" %>

您是否尝试直接使用浏览器调用Result.jsp?它是否返回第二个版本的xml片段而不是第一个版本?

答案 2 :(得分:0)

大。做到了。在xml的开头有一个新的行字符。在将xml写入其中之前我已经清除了对象并且它有效。

<%@ page import="java.util.Date"%>
<%
    response.setContentType("text/xml");
    Date now = new Date(); 
    StringBuffer sb = new StringBuffer("<?xml version='1.0' ?><root>");
    String name = request.getParameter("name");
    sb.append("<data>");
    sb.append(name + " / " + now);
    sb.append("</data>");
    sb.append("</root>");
    out.clear();
    out.print(sb);
%>