ajax实质是异步的javascript和xml,即异步请求更新技术(返回的数据字符编码是utf-8)。
ajax的对象就是xmlHttpRequest,在后台与服务器交换数据,可以在不重新加载页面情况下对页面某部分进行刷新(下拉菜单,表单,提示词等)
xmlHttpRequest对象利用send()和open()方法与服务器进行交互的
open(method,url,async)
method—-请求的方式:get或者post
url—-文件在服务器的位置(地址)
async—-true既是异步方式,false是同步方式
get方式与post方式的差异:
get----传输的数据量小,受限于url长度;get请求的数据会被浏览器缓存下来,容易被获取,安全性差;处理效率高
post----传输的数据量大,post的信息作为HTTP请求的内容;post请求的数据不会被缓存,安全性高;post请求需要使用setRequestHeader()添加Http头部
若符合下列任一情况,则用POST方法:
* 请求的结果有持续性的副作用,例如,数据库内添加新的数据行。
* 若使用GET方法,则表单上收集的数据可能让URL过长。
* 要传送的数据不是采用7位的ASCII编码。
若符合下列任一情况,则用GET方法:
* 请求是为了查找资源,HTML表单数据仅用来帮助搜索。
* 请求结果无持续性的副作用。
* 收集的数据及HTML表单内的输入字段名称的总长不超过1024个字符。
send(string)
string仅用于post请求,设置setRequestHeader()
例: `xmlhttp.open("POST","xxxx.json",true)
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fnane=Bill&lname=Gates");`
属性
readyState:
0: 请求未初始化
1: 服务器连接已建立
2: 请求已接收
3: 请求处理中
4: 请求已完成,且响应已就绪
state:
200:”ok”
404:”not find”
responseText:获得字符串形式的响应数据。
responseXML:获得 XML 形式的响应数据。
onreadystatechange:存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。