急求解决selectSingleNode缺少象的问题,在线等!!!

roc9698 2009-09-06 02:28:15
function XmlHttpHelper(){}
XmlHttpHelper.__getXmlHttpObj = function()
{
try
{
return new ActiveXObject("MSXML2.XMLHTTP");
}
catch(e)
{
return new XMLHttpRequest();
}
};
//
// 使用XMLHTTP和远程服务器通信。
//
// 参数名称 必须 类型 取值范围 描述
//-------------------------------------------------------------------------------------------
// async 是 boolean true/false 是否使用异步方式
// httpMethod 是 string "post"/"get" http方法
// responseType 否 string "text"/"xml" 返回数据的类型
// url 是 string 接收请求的URL地址
// callback 否 function 异步方式操作完成时执行的回调函数
// postData 否 string post方式时发送的数据
//
// 注:非必须的参数,如不被传递时使用null代替。
//
XmlHttpHelper.transmit = function(async, httpMethod, responseType, url, callback, postData)
{
httpMethod = httpMethod.toLowerCase();
if(responseType != null) responseType = responseType.toLowerCase();

var xmlhttp = this.__getXmlHttpObj();
xmlhttp.open(httpMethod, url, async);//初始化参数

if(!async && httpMethod == "post")
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

if(async)//async为true是异步请求
{
xmlhttp.onreadystatechange = function() //设置属性到一个函数,当请求完成时,该函数会被调用.
{
if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
try
{
if(typeof(callback) == "function")
{
switch(responseType)
{
case "text":
callback(xmlhttp.responseText);
break;
case "xml":
callback(xmlhttp.responseXML);
break;
default:
callback(null);
}
}
}
finally
{
xmlhttp = null;
}
}
}
xmlhttp.send(postData);//发送请求
}
else//async为false是同步请求
{
xmlhttp.send(postData);//发送请求
if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
switch(responseType)
{
case "text":
return xmlhttp.responseText;
case "xml":
return xmlhttp.responseXML;
default:
return null;
}
}
else
{
return null;
}
}
};

//加载部门信息。
function _load_Department(id)
{
var responseData = XmlHttpHelper.transmit(false, "get", "xml", "RemoteHandlers/GetDepartment.ashx?id=" + id, null, null);
//alert(responseData);
if(responseData.selectSingleNode("/Department/Succeed").text == "1") {
document.all.txtName.value = responseData.selectSingleNode("/Department/Name").text;
document.all.txtPhone.value = responseData.selectSingleNode("/Department/Phone").text;
document.all.txtExtNumber.value = responseData.selectSingleNode("/Department/ExtNumber").text;
document.all.txtFax.value = responseData.selectSingleNode("/Department/Fax").text;
document.all.txtaRemark.value = responseData.selectSingleNode("/Department/Remark").text;
document.all.txtOrderId.value = responseData.selectSingleNode("/Department/OrderId").text;
}
}

GetDepartment.ashx:
<%@ WebHandler Language="C#" Class="GetDepartment" %>

using System;
using System.Web;
using System.Xml;
using System.Web.SessionState;
using PermissionBase.Core.Domain;
using PermissionBase.Core.Service;

public class GetDepartment : IHttpHandler, IReadOnlySessionState
{
public void ProcessRequest(HttpContext context)
{
context.Response.Cache.SetCacheability(HttpCacheability.NoCache);

string XmlString = null;
try
{
string DepartmentId = context.Request.QueryString["id"];
XmlString = GetDepartmentInfoXML(DepartmentId);
}
catch (Exception ex)
{
XmlString = "<Department><Succeed>-1</Succeed></Department>";
log.Error(null, ex);
}
finally
{
context.Response.ContentType = "text/XML";
context.Response.Write(XmlString);
context.Response.End();
}
}
private string GetDepartmentInfoXML(string DepartmentId)
{
Department d = CommonSrv.LoadObjectById(typeof(Department), DepartmentId) as Department;

XmlNode node = null;
XmlDocument xmlDoc = new XmlDocument();

XmlNode rootNode = xmlDoc.CreateNode(XmlNodeType.Element, "Department", "");
xmlDoc.AppendChild(rootNode);

node = xmlDoc.CreateNode(XmlNodeType.Element, "Succeed", "");
node.InnerText = "1";
rootNode.AppendChild(node);

node = xmlDoc.CreateNode(XmlNodeType.Element, "Name", "");
node.InnerText = d.Name;
rootNode.AppendChild(node);

node = xmlDoc.CreateNode(XmlNodeType.Element, "Phone", "");
node.InnerText = d.Phone;
rootNode.AppendChild(node);

node = xmlDoc.CreateNode(XmlNodeType.Element, "ExtNumber", "");
node.InnerText = d.ExtNumber;
rootNode.AppendChild(node);

node = xmlDoc.CreateNode(XmlNodeType.Element, "Fax", "");
node.InnerText = d.Fax;
rootNode.AppendChild(node);

node = xmlDoc.CreateNode(XmlNodeType.Element, "Remark", "");
node.InnerText = d.Remark;
rootNode.AppendChild(node);

node = xmlDoc.CreateNode(XmlNodeType.Element, "OrderId", "");
node.InnerText = d.OrderId.ToString();
rootNode.AppendChild(node);
return xmlDoc.OuterXml;
}
}
用VS2008开发的,用到的主要代码如上,在执行到if(responseData.selectSingleNode("/Department/Succeed").text == "1")时,提示“Microsoft JScript运行错误:缺少对象”!在笔记本电脑上运行是正确的,发布到windows server2003上就出错了,请大家帮忙解决,谢谢先!
...全文
134 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿非 2009-09-07
  • 打赏
  • 举报
回复
selectSingleNode 是IE 特有的方法, 在FF 下是无效的 ,你看看是不是浏览器不支持
roc9698 2009-09-06
  • 打赏
  • 举报
回复
TO(人生如梦) :
笔记本电脑是XP系统,服务器是windows server2003。发布到服务器上其他页面都是可以访问的,就是遇到读取XML的时候提示出错了
wuyq11 2009-09-06
  • 打赏
  • 举报
回复
输出responseData看看
if(window.ActiveXObject) {
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
}
else if(window.XMLHTTPRequest){
xmlhttp = new XMLHTTPRequest();
wuyq11 2009-09-06
  • 打赏
  • 举报
回复
if(if(responseData.selectSingleNode("/Department/Succeed")!=null)
{
if(responseData.selectSingleNode("/Department/Succeed").text == "1")
{

}
}
环境是否一致

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧