ajax与jsp 获得空xml解决方法
Ajax和jsp的怪现象
如果用Ajax去请求一个jsp页面,该jsp页面返回的是xml(response.setContentType("text/xml; charset=GB2312");),并且该jsp包含下面这些头@page指令的话,则在客户端xml=XMLHttpRequest.responseXML得到的是一个不包含任务东西的xml对象,即xml.childNodes.length将会是0.
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="com.suntek.notes.sql.DBGrid"%>
<%@ page import="java.util.Vector" %>
原因是以上的@page指令(其实是任何一个指令)会产生空行。即在jsp里边的out.print(xml)到客户端的之前,已经有空行输出了。解决办法可以是去掉上面的语句,或把jsp改为servlet
同时,jsp里边的任何空行都有可能会导致同样的问题。
应该用servlet较好。
相关文档:
var xmlHttp;
var flag = false;
function createXMLHttpRequest()
{
if(window.ActiveXObject)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlHttp=new XMLHttpRequest();
}
}
fu ......
Input.xml-----------
<?xml version="1.0" encoding="gb2312"?>
<studentList>
<student sex="man">
<name>wgy</name>
<age>23</age>
<tel>12345678</tel>
</student>
<student sex="female">
<name>lemon</name&g ......
/*
* history
*
* Created on 2003-5-26
*
* 2003-06-05
* 1.增加了Log的处理信息。
* 2.抛出的异常由原来UtilException的改变成XMLException,后者继承前者。
*
* 2003-09-02 by David Yu
* 1.增加了改变一个 ......
1、通过<s:form action="跳转页面">提交值,但是在<s:form>标签中的action后面至多只能跟一个参数,并且还会报警告,所以如果想传递参数可以用<s:hidden name="" values="username"></s:hidden>来传值,但是正规的写法需要配合<s:set>标签来用 如:
<s:set name="temp" value="动态值"&g ......
<%@ page contentType="application/msexcel" %>
<%
//独立打开excel软件
response.setHeader("Content-disposition","attachment; filename=MyExcel.xls");
//嵌套在ie里打开excel & ......