homehttp 2011-05-25
一·ajax的编程步骤:
1.创建XMLHttpRequest对象xhr;
2.使用xhr的open函数打开资源;open("GETorPOST","传向的页面"+如果是GET要加参数(不用加/));
3.使用xhr的onreadystatechange属性注册处理应答的回调函数的句柄;(为什么只传句柄?如果传display()的话相当于传入的是函数值,
而传入display()的话是将整个函数传给它,当有变化时交个这个函数来处理传入display()还会出错?)
4.(在使用POST方法使用)使用xhr的setRequestHeader设置请求头。通常设置content-type
请求头,可能的值是:application/x-www-form-urlencoded和text/xml;
5.使用xhr的send方法发送请求;
6.编写回调函数处理应答:在此函数里通过xhr的readyState属性判断通信是否结束(等于4结束);然后再通过xhr的status属性判断webserver是否正确处理应答(等于200正确),如果正确处理应答,应答的文本存放在xhr的responseText属性中,应答是xml再将生成的xml文档放在xhr的responseXML中传XML文档只能用POST方法传
res.getCharactorEncoding();可获得res的字符编码
res.setCharactorEncoding("UTF-8");
用DOMapi解析XML文档的步骤:
1.创建DocumentBuilderFactory:
DocumentBuilderFactorydbf=DocumentBuilderFactory.newInstance();
2.(可选)设置dbf的属性:
设置合法性检测:dbf.setValidating(true);
设置处理名字空间:dbf.setNamespaceAware(true);
3.创建DocumentBuilder:
DocumentBuilderdb=dbf.newDocumentBuilder();
4a.解析XML文档:
Documentdoc=db.parse(xmlResource);
4b.生成XML文档:
Documentdoc=db.newDocument();
二·XMLHTTPRequest的属性和方法介绍
方法属性:
open(stringmethod,stringurl,booleanasynch,stringusername,stringpassword):post还是get,url地址,同步还是异步后面三个参数是可选的
voidsend(content):
stringgetAllResponseHeaders()
voidsetRequestHeader(stringheader,stringvalue):这个方法为HTTP请求中一个给定的首部设置值。它有两个参数,第一个串表示要设置的首部,第二个串表示要在首部中放置的值。需要说明,这个方法必须在调用open()之后才能调用。
stringgetResponseHeader(stringheader):
onreadystatechange:每个状态改变时都会触发这个事件处理器,通常会调用一个JavaScript函数、回调函数
readyState:请求的状态。有5个可取值:0=未初始化,1=正在加载,2=已加载,3=交互中,4=完成
responseText:服务器的响应,表示为一个串
responseXML:服务器的响应,表示为XML。这个对象可以解析为一个DOM对象
statusText:HTTP状态码的相应文本(OK或NotFound(未找到)等等)
$http是AngularJS 中的一个核心服务,用于读取远程服务器的数据。"Name" : "Galería del gastrónomo",<li ng-repeat="x in names&qu