1. 获取浏览器的XMLHttpRequest对象,获取的方式有如下几种
1.1
function getXMLHttpRequest()
{
var xmlhttpReq = null;
if(window.ActiveXObject) //IE浏览器
{
xmlhttpReq = new ActiveXObject("MSXML2.XMLHTTP.3.0");
}else if(window.XMLHttpRequest) //其他浏览器
{
xmlhttpReq = new XMLHttpRequest();
}
return xmlhttpReq;
}
1.2
function getXMLHttpRequest() {
var xmlHttpReq=null;
if (window.XMLHttpRequest) {//Mozilla 浏览器
xmlHttpReq = new XMLHttpRequest();
}else {
if (window.ActiveXObject) {//IE 浏览器
try {
xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {
try {//IE 浏览器
xmlHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
}
}
}
}
return xmlHttpReq;
}
1.3
function ajaxFunction(){
var xmlHttp;
try{ // Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e){
try{// Internet Explorer
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e){}
}
}
return xmlHttp;
}
2. 使用Ajax技术向服务器发出请求
function requestMeg(url,select)
{
//1. 获取XMLHttpReques对象
var xmlReq = getXMLHttpRequest();
//2. 注册监听器
xmlReq.onreadystatechange = function()
{
//状态码
/*
0 -未初始化还没有使用send方法向服务器发送数据
1- 载入,已经向服务器发出了请求但还没有相应
2- send方法执行完成。已经接收到全部相应内容
3- 正在解析相应内容
4- 相应解析完成,数据可以使用
*/
if(xmlReq.readyState == 4)
{
//如果服务器返回的是xml文档的话就使用responseXML来获取服务器端的数据
var msg = xmlReq.responseXML;
//如果是html文件的数据则中responseText来获取数据
var msg = xmlReq.responseText;
//如果接受到的是json格式的数据需要使用eval函数来转换
var msg = xmlReq.responseText;
var json = eval("(" +msg+ ")");
//注意向服务器发送中文数据时需要进行url编码,例如:encodeURI("中文");
}
};
//3. 准备发送数据
xmlReq.open("GET",url,true);
//4. 发送数据,注意如果是GET请求的话只能在请求的url地址后面跟数据
//如果是POST请求的话就可以在send函数中储存要发送的数据了
xmlReq.send(null);
}
js中的总结
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.