AJAX
关于响应交互始终很模糊。
ajax是什么 ?
① ajax(asynchronouse javascript and xml) 异步的javascript 和 xml
② 是7种技术的综合,它包含了七个技术( javascript xml xstl xhtml dom xmlhttprequest , css), ajax 是一个粘合剂,
③ ajax是一个与服务端语言无关的技术. 即可以使用在(php/java ee/.net网站/ asp)
④ ajax可以给客户端返回三种格式数据(文本格式 ,xml , json格式)
⑤ 无刷新数据交换技术有以下: flash, java applet, 框架, iframe, ajax)
使用AJAX的步骤:
① 创建一个XMLHttpRequest对象
② 创建url,data,通过 xmlHttpRequest.send()
③ 服务器端接收 ajax的请求,做相应处理(操作数据库),然后返回结果(echo 语句)
④ 客户端通过xmlHttpRequest的属性 reponseText , responseXML 取的数据,然后就完成局部刷新当前页面任务
ajax的post方式请求
//这个是要发送的数据
var data="username="+$('username').value;
//打开请求.
myXmlHttpRequest.open("post",url,true);
//还有一句话,这句话必须.
myXmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//指定回调函数.chuli是函数名
myXmlHttpRequest.onreadystatechange=chuli;
//真的发送请求,如果是get请求则填入 null即可
//如果是post请求,则填入实际的数据
myXmlHttpRequest.send(data);
registerPro.php关键码 :
$username=$_POST['username'];
使用get方式发出请求,如果提交的用户名不变化,浏览器将不会真的发请求,而是缓存取数据., url
解决方法
- url 后带一个总是变化的参数,比如当前时间
var url="/ajax/registerProcess.php?mytime="+new Date()+"&username="+$("username").value;
- 在服务器回送结果时,禁用缓存.
//这里两句话很重要,第一讲话告诉浏览器返回的数据是xml格式
header("Content-Type: text/xml;charset=utf-8");
//告诉浏览器不要缓存数据
header("Cache-Control: no-cache");