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较好。
相关文档:
主题
本 OBE 教程包括下列主题:
概述
情景
验证前提条件
在 ODI 中新建项目
为 XML 文件插入新模型
为数据库表 CLIENT 插入模型
删除 CITY_CLIENT 的约束副本
在 CLIENT 数据存储上设置 ODI 约束
导入知识模块
创建用于加载 XML 文件的新接口
执行程序包并测试结果
查看接口执行的约束错误
总结
相关信息
......
在看文章前,先指定一个通用的变量xhr,xhr代码ajax对象。
测试浏览器:ie为ie6,firefox为2,其他的未测试。统称ie6为ie,firefox2为ff。
基本的
1,最经典的就是ie下的缓存问题了。
如果使用的是get,那么在ie下出现缓存问题。导致代码只执行一次。解决办法就是加时间戳或者随机数,使url变为唯一,这样就不会出现 ......
var xmlHttp;
var flag = false;
function createXMLHttpRequest()
{
if(window.ActiveXObject)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlHttp=new XMLHttpRequest();
}
}
fu ......
添加XML节点
/// <summary>
/// 初始化XML status-0
/// </summary>
/// <returns></returns>
private bool InitialConfig()
{
bool b ......
<%@ page contentType="application/msexcel" %>
<%
//独立打开excel软件
response.setHeader("Content-disposition","attachment; filename=MyExcel.xls");
//嵌套在ie里打开excel & ......