Web前端之路让前端飞前端开发

Web基础之Ajax

2017-02-26  本文已影响76人  南山伐木

Ajax概述:

  1. 页面无刷新,不打断用户的操作。
  2. 按需要获取数据,客户端(浏览器)与服务器端之间的数据传输量大大减少
  3. 是一种标准化的技术,不需要下载任何插件。
function getXhr(){
var xhr=null;
   if(window.XMLHttpRequest){
   xhr=new XMLHttpRequest();//非IE浏览器
}else{
   xhr=new ActiveXObject('Microsoft.XMLHttp');//IE浏览器
}
return xhr;
}

语句处理:

$(“id”) <—> document.getElementById(“id”);
$F(“id”) <—> document.getElementById(“id”).value;

1)获得Ajax对象,比如:var xhr=getXhr();//调用之前定义的函数
2)使用Ajax对象发送post请求:
① xhr.open(“post”,”check.do”,true);//建立连接
② xhr.setRequestHeader(“content-type”,”application//x-www-form-urlencoded”);//发送一个content-type消息头, 必须设置
③ xhr.onreadystatechange=func1();//绑定一个事件处理函数(监听器)
④ xhr.send(“username=小红“);//发送请求参数
【注意:与get请求不同,请求参数要放到send方法里面;因为按照HTTP协议的要求,发送post请求时,应该发送一个content-type消息头,而Ajax对象在默认情况下,不会发送这个消息头,所以,需要调用setRequestHeader方法来添加。】
3)编写函数处理事件func1();

xhr.open('get','check_username.do?username='+$F('username'),true);
var uir='check_username.do?username='+$F('username');
xhr.open('get',encodeURI(uri),true);

2)post请求:
—> 乱码产生原因:所有浏览器(一般指三大浏览器:Chrom、Firefox、IE)内置的Ajax对象都会使用“utf-8”对中文参数进行编码,而服务器默认情况下,会使用“ISO-8859-1”去解码。
【注意:Firefox特殊,本应是乱码,但能正常显示。通过截取消息头发现Firefox会在消息头中自动添加”charset=utf-8"。】
—> 乱码解决:服务器端添加:request.setCharacterEncoding("utf-8");

【注意:】
1)href="javascript:;"相当于href="#",写成href="javascript:;"一般要和onclick事件一起使用,表示a元素不再指向一个地址,而是点击后触发一个事件。

博客地址:Web基础之Ajax

上一篇 下一篇

猜你喜欢

热点阅读