ajax-向服务器发送请求
1.将请求发送到服务器,使用XMLHttpRequest对象的 open() 和 send() 方法。
xmlhttp. open(method,url,async) 方法:
method:请求的类型:get 或者 post;
url:文件在服务器上的位置(该文件可以是任何类型的文件,比如:.txt,.xml,.asp,.php);
async: true(异步)或 false(同步)
注:XMLHttpRequest对象要是用于AJAX,open()方法的值必须设为true
① async=true
响应必须处于onreadystatechange()事件就绪状态时执行函数。
② async=fals
不要编写onreadystatechange() 函数 ,只要在 open() 之后写 send() 把代码放到其后就好。
xmlhttp. send(string) 方法:
string:仅在post请求中使用
2.get请求:
①目的是请求资源;
②通过URL传递参数;
③传递数据大小不能超过2kb;
④与post请求相比,get请求更简单更快,大部分情况都能用;
⑤通过地址栏发送请求时,只使用get请求。
实例:
xmlhttp. open("get",get.asp,true);
xmlhttp.send();
注:为防止得到缓存结果,可以向URL中添加一个唯一的ID---->get.asp?t="Math.random()
2.post 请求:
①目的是传递参数;
②封装在请求头;
③传递数据大小理论上不受限制;
④在以下情况最好使用post请求:
a.无法使用缓存文件(更新服务器上的文件或数据库)
b.向服务器发送大量数据
c.发送包含未知字符的用户输入时,post更可靠
⑤如果要像HTML表单一样使用post,需要在 open() 后使用 setRequestHeader() 来添加HTTP头,然后再 send() 方法中规定要发送对的数据。目的是通知服务器端当前数据已经经过url编码,此时服务器才能接收。
setRequestHeader(header,value) 方法:
header:向请求添加HTTP头的名称;
value:向请求添加HTTP头所规定的
实例:
xmlhttp.open("post","test.asp",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Bill&lname=Gates");