.NET平台下ajax传递XML信息到服务器端,服务器端处理xml并发送回来的过程。
1,首先创建XML文件
function createXML(){
var xml ="<user>";
var username="justlikeyou";
xml=xml+"<name>"+username+"<//name>";
xml=xml+"<//user>";
return xml;
}
2,发送XML文件
function sendXmlDataAndgetXml()
{
var XMLHTTP = createXMLHttpRequest();
var strURL="getWSwithXML.aspx";
XMLHTTP.open("POST",strURL,true);
XMLHTTP.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
var xml_dom=createXML();
//XMLHTTP.send("xml="+xml_dom);
XMLHTTP.send(xml_dom);
XMLHTTP.onreadystatechange=function ()
{
if(XMLHTTP.readyState==4){
if (XMLHTTP.status == 200 || XMLHTTP.status == 0){
var responseText=XMLHTTP.responseText;
alert(responseText);
analysizeXML(responseText);
}
}
}
}
3,服务器处理发送过来的xml参数
(注意:要在web.config中加一行信息 <pages validateRequest="false"/>,否则会报如下的错误:
A potentially dangerous Request.Form value was detected from the client。这个是一个请求验证的检测。
默认地,ASP.NET 1.1和2.0请求验证会对送至服务器的数据检测是否含有HTML标记元素和保留字符.
这可以防止用户向程序中输入脚本.请求验证会对照一个有潜在威胁的字符串列表进行匹配,
如果发现异常它会抛出一个HttpRequestValidationException类型的异常.)
public void loadXmlFromServer(){
XmlDocument xmldoc=new XmlDocument();
xmldoc.Load(Request.InputStream);
XmlElement root=xmldoc.DocumentElement;
XmlNodeList nodes=root.ChildNodes;
XmlNode node=nodes.Item(0);
String nodeValue=node.ChildNodes.Item(0).Value;//节点值:justlikeyou
}
4,服务器发送一个xml响应:
简单如下
String strXML="<?xml version=/"1.0/" encoding=/"GB2312/" ?><root><info>hello world!</info></root>";
Response.Write(strXML);
注意:在aspx的页面中把所有的内容都要清除掉,即在aspx页面中只有下面一行信息:
<%@ Page language="c#" Codebehind="getWSwithXML.aspx.cs" AutoEventWireup="false" Inherits="demoSvg.getWSwithXML" %>
5,客户端处理服务器发送过来的响应信息
//解析服务器端发送过来的XML字符串。
function analysizeXML(data)
{
var xmlDoc = new ActiveXObject("Microsoft.xmldom");
xmlDoc.async = "false";
xmlDoc.loadXML(data);
var info=xmlDoc.getElementsByTagName("info");
alert("responseText's value: " + info[0].firstChild.data);
//第2种方法读XML中的信息
/*
var root=xmlDoc.documentElement;
var channel=root.childNodes.item(0);
var itemlist=channel.childNodes;
alert(itemlist.item(0).text);
*/
}
上面就是使用ajax技术在.NET平台中传递XML信息,并解析XML的整个过程。具体的更详细的
操作,如解析属性了,生成更复杂的xml可以学校使用Microsoft.xmldom和XmlDocument。
1,首先创建XML文件
function createXML(){
var xml ="<user>";
var username="justlikeyou";
xml=xml+"<name>"+username+"<//name>";
xml=xml+"<//user>";
return xml;
}
2,发送XML文件
function sendXmlDataAndgetXml()
{
var XMLHTTP = createXMLHttpRequest();
var strURL="getWSwithXML.aspx";
XMLHTTP.open("POST",strURL,true);
XMLHTTP.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
var xml_dom=createXML();
//XMLHTTP.send("xml="+xml_dom);
XMLHTTP.send(xml_dom);
XMLHTTP.onreadystatechange=function ()
{
if(XMLHTTP.readyState==4){
if (XMLHTTP.status == 200 || XMLHTTP.status == 0){
var responseText=XMLHTTP.responseText;
alert(responseText);
analysizeXML(responseText);
}
}
}
}
3,服务器处理发送过来的xml参数
(注意:要在web.config中加一行信息 <pages validateRequest="false"/>,否则会报如下的错误:
A potentially dangerous Request.Form value was detected from the client。这个是一个请求验证的检测。
默认地,ASP.NET 1.1和2.0请求验证会对送至服务器的数据检测是否含有HTML标记元素和保留字符.
这可以防止用户向程序中输入脚本.请求验证会对照一个有潜在威胁的字符串列表进行匹配,
如果发现异常它会抛出一个HttpRequestValidationException类型的异常.)
public void loadXmlFromServer(){
XmlDocument xmldoc=new XmlDocument();
xmldoc.Load(Request.InputStream);
XmlElement root=xmldoc.DocumentElement;
XmlNodeList nodes=root.ChildNodes;
XmlNode node=nodes.Item(0);
String nodeValue=node.ChildNodes.Item(0).Value;//节点值:justlikeyou
}
4,服务器发送一个xml响应:
简单如下
String strXML="<?xml version=/"1.0/" encoding=/"GB2312/" ?><root><info>hello world!</info></root>";
Response.Write(strXML);
注意:在aspx的页面中把所有的内容都要清除掉,即在aspx页面中只有下面一行信息:
<%@ Page language="c#" Codebehind="getWSwithXML.aspx.cs" AutoEventWireup="false" Inherits="demoSvg.getWSwithXML" %>
5,客户端处理服务器发送过来的响应信息
//解析服务器端发送过来的XML字符串。
function analysizeXML(data)
{
var xmlDoc = new ActiveXObject("Microsoft.xmldom");
xmlDoc.async = "false";
xmlDoc.loadXML(data);
var info=xmlDoc.getElementsByTagName("info");
alert("responseText's value: " + info[0].firstChild.data);
//第2种方法读XML中的信息
/*
var root=xmlDoc.documentElement;
var channel=root.childNodes.item(0);
var itemlist=channel.childNodes;
alert(itemlist.item(0).text);
*/
}
上面就是使用ajax技术在.NET平台中传递XML信息,并解析XML的整个过程。具体的更详细的
操作,如解析属性了,生成更复杂的xml可以学校使用Microsoft.xmldom和XmlDocument。