2008年5月10日星期六

编写AJAX程序时遇到的XML问题

日前在做一个JSP程序时用到了AJAX技术,需要由ASP生成一个XML文件发送给浏览器。以前用ASP做这个工作的时候没有遇到问题。

生成XML的JSP文件如下:

<%@ page language="java" pageEncoding="gb2312"%>
<%
response.setHeader("pragma","no-cache");
response.setHeader("cache-control","no-cache");
response.setHeader("expires","0");
response.setHeader("content-type","text/xml;charset=gb2312");
out.println("<?xml version=\"1.0\" encoding=\"GB2312\"?>");
out.println("<docroot><node1>中国</node1></docroot>");
%>

这样FireFox就会说"xml处理指令不在外部实体的开始部分" ,而IE就说是java错误云云。通过google和看JSP转换成的java文件,在文件开始处多了回车换行。改成下面的就可以了

修改以后的JSP页面如下:

<%@ page language="java" pageEncoding="gb2312"%><%
response.setHeader("pragma","no-cache");
response.setHeader("cache-control","no-cache");
response.setHeader("expires","0");
response.setHeader("content-type","text/xml;charset=gb2312");
out.println("<?xml version=\"1.0\" encoding=\"GB2312\"?>");
out.println("<docroot><node1>中国</node1></docroot>");
%>

类似输出流的问题在使用jspSmartUpload组件下载文件时同样也会遇到。

没有评论:

发表评论