日期:2014-05-17  浏览次数:20461 次

ajax与服务器处理 返回的结果不一样
Permissions\Support\Organise.aspx 只做前台像css html js
Permissions\Server\Organise.aspx 只做aspx.cs操作

代码:
Permissions\Server\Organise.aspx 里的方法通过访问数据库数据,进行转换成xml,返回的是xml的字符串 
private void Page_Load(object sender, System.EventArgs e)
{
CSUtility.CDBWrap obj = new CSUtility.CDBWrap();
objDBWrap = obj.m_DbObj;

string comm = this.Request["command"];
switch (comm)
{
// 获取当前用户所管理组织结构根
case "get_root":
this.Response.Write("<NewDataSet><Table><org_id>1</org_id><name>root</name><short_name>root</short_name></Table></NewDataSet>");
return;
// 获取组织机构列表
case "get_list" : 
strSql = "select org_id, name, short_name from Organise where p_id=" + this.Request["p_id"];
ds = objDBWrap.GetDataSetBySQL(strSql, true, out strError);
break;
// 获取指定机构信息
case "get_info":
strSql = "select * from Organise where org_id=" + this.Request["org_id"];
ds = objDBWrap.GetDataSetBySQL(strSql, true, out strError);
break;
// 获取指定机构管理者
case "get_mgr":
strSql = "select top 3 userid, display_name, login_uid from Users";
ds = objDBWrap.GetDataSetBySQL(strSql, true, out strError);
break;
}
if(strError == "")
{
this.Response.Write(ds.GetXml());
}
else
{
this.Response.Write("错误:" + strError);
}
  }



Permissions\Support\Organise.aspxvar url = '../../Server/Organise.aspx?command=get_root&t=' + Math.random();
var root = GetInfoFromServer(url);

GetInfoFromServer是用js封装好的ajax
function GetInfoFromServer(url)
{
var httpobj = GetHttpSvr();
httpobj.open("POST",url,false);
httpobj.setRequestHeader("Cache-Control","no-cache"); 
  httpobj.setRequestHeader("Pragma","no-cache");
httpobj.send();
return httpobj.responseText;
}
function GetHttpSvr()
{
if (window.XMLHttpRequest)  
return new XMLHttpRequest();  
else if (window.ActiveXObject)  
return new ActiveXObject("MSXML2.XMLHTTP");  
}
这样返回的值是正确的


但是我想在静态页面html里做ajax,但是返回的结果是把Permissions\Server\Organise.aspx 剩余的
<%@ Page language="c#" Codebehind="Organise.aspx.cs"AutoEventWireup="false"Inherits="MatrixWeb.Permissions.Server.Organise" %>
返回来
不知道哪儿错了
请高手解答下

------解决方案--------------------
this.Response.Write(ds.GetXml());

=》
C# code
this.Response.Clear();//清空
                this.Response.Write(ds.GetXml());//写入
                this.Response.End();//结束

------解决方案--------------------
this.Response.End();//结束

cs
ashx 这些都一样哟