目录
article
javascript 之使用 xml 数据格式发起请求
javascript 之使用 xml 数据格式发起请求
XML 有时也用于数据传输编码。
比如如果想发送如下格式的数据到服务器端
<query>
<find zipcode="0123" radius="1km">
pizza
</find>
</query>
可以使用如下方法:
//在 XML 中编码什么物品,在哪里,半径是多少,然后向指定 URL 发送 POST 请求
//当接收到响应时,调用回调函数
function postQuery(url,what,where,radius,callback){
var request = new XMLHttpRequest();
request.open("POST",url);
request.onreadystatechange = function(){
if(request.readyState === 4 && request.status === 200){
if(callback){
callback(request);
}
}
}
//创建 XML 的文档流,根元素使用<query>
//document.implementation 返回 DomImplementation 对象,该对象可执行与文档对象模型的任何实例无关的任何操作。
var doc = document.implementation.createDocument("","query",null);
var query = doc.documentElement; //<query>元素
var find = doc.createElement("find"); //创建<find>元素
query.appendChild(find); //并把它添加到<query>中
find.setAttribute("zipcode",where);
find.setAttribute("radius",radius);
find.appendChild(doc.createTextNode(what));
//向服务器发送 XML 编码的数据
//这里将自动设置 Content-type 头,不需要设置
request.send(doc);
}
关于 createDocument() 方法的使用方法:
createDocument() 方法创建一个新 Document 对象和指定的根元素。
语法:
nodeObject.createDocument(namespaceURI, qualifiedName, doctype)参数 描述:
namespaceURI
为文档创建的根元素的命名空间的唯一标识符。
如果没有命名空间,则为null。qualifiedName
为文档创建的根元素的名称。
如果namespaceURI不为null,该名称应该包括命名空间前缀和冒号。doctype
新创建的Document对象的DocumentType对象。
如果没有想得到的DocumentType对象,则为null。