ajax中Get方式提交数据需要注意的地方:
因为浏览器为了提高用户访问同一网页的速度,会对页面数据进行缓存,下次访问该页面时,直接展开数据,所以需要在地址栏传递参数Get,表示访问的不是同一页面。
在地址栏输入数据xhr.open("Get","index.php?c=user&a=ajax_check&time=newDate().getTime()",true);
注意:使用GET方式发送请求,如果地址栏内容不变的话,浏览器不会真的发送请求,而是直接读取缓存的数据。
GET方式提交时,需要注意url上不能传递中文,在传递之前需要进行url转码
php的url编码:urlencode();
javascript的url编码函数encodeURL();
post方式发送ajax请求
1.open()初始化时,需要采用open(“POST”,url,true);
2.如果采用post请求,需要设置数据的编码方式,通过XMLHttpRequest对象的setRequestHeader() 。
3.最后send的时候,将数据发送过去。
Ajax的优势:
1,传统的web请求,会将表单的数据全部提交到action=””这个地址的服务器上,但是密码,email是没有必要提交过去,而且,对服务器是一种负担
Ajax:原则:“按需取数据”,这样可以降低服务器的压力
Json格式发送集合类的数据
服务器返回给浏览器返回2种数据,
1,字符串;接收:xhr.responseText
2,集合类
Ajax就是javascript通过操作XMLHttpRequest对象完成http请求
服务器如何给浏览器返回集合类的数据:
Json_encode()编码后,返回的是json格式的字符串,(仍然还是字符串),思路:如何让这个json格式的字符串转化成一个对象
什么是异步?
ture,的时候,alert为空。 false,的时候,alert 有值。
指定响应处理函数,服务器端返回客户端数据后,客户端如何处理
我们通过使用XMLHttpRequest对象的readyState属性,来标识当前ajax请求的状态
对象状态(integer):
0 = 未初始化
1 = 读取中
2 = 已读取
3 = 交互中
4 = 完成
readyState ==4时,表示ajax请求已完成
还要判断一下,是否成功:
Xhr对象的status属性 ==200表示请求成功
通过测试readyState属性所在不同的位置