自己写了个ajax.js

前端之家收集整理的这篇文章主要介绍了自己写了个ajax.js前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
//JavaScriptDocument
varxmlHttp;

functionajax(obj){

	xmlHttp=GetXmlHttpObject();
	if(xmlHttp==null)
	{
		alert("您的浏览器不支持AJAX!");
		return;
	}
	
	xmlHttp.onreadystatechange=function(){
	//0请求未初始化(在调用open()之前)
	//1请求已提出(调用send()之前)
	//2请求已发送(这里通常可以从响应得到内容头部)
	//3请求处理中(响应中通常有部分数据可用,但是服务器还没有完成响应)
	//4请求已完成(可以访问服务器响应并使用它)
		if(xmlHttp.readyState==4)
		{
			if(xmlHttp.responseText==""){
				obj.failure("无法访问服务器!");
			}else{
				obj.success(josonDecode(xmlHttp.responseText));
			}
		}
	};
	
	xmlHttp.open("post",obj.url,true);
	//和form的enctype属性一样,编码
	xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
	varparam="";
	//遍历出object.data对象的所有属性和对应的值;转换成"name=value&name=value"的形式!
	for(varattrinobj.data)
	{
		if(param==""){
			param=attr+"="+obj.data[attr];
		}else{
			param+="&"+attr+"="+obj.data[attr];
		}	
	}
	//发送参数
	xmlHttp.send(param);
	}

functionGetXmlHttpObject()
{
	varxmlHttp=null;
	
	try
	{
	//Firefox,Opera8.0+,Safari...
	xmlHttp=newXMLHttpRequest();
}
	catch(e)
{
	//InternetExplorer
	try
	{
		xmlHttp=newActiveXObject("Msxml2.XMLHTTP");
	}
		catch(e)
	{
		xmlHttp=newActiveXObject("Microsoft.XMLHTTP");
	}
}
	returnxmlHttp;
}

//把文本转化为对象;
functionjosonDecode(text){
	returneval("("+text+")");
}

这里只用了post提交方法

w3c里面有对post和get这样的解释

在以下情况中,请使用 POST 请求:

  • 无法使用缓存文件(更新服务器上的文件数据库

  • 向服务器发送大量数据(POST 没有数据量限制)

  • 发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠


然后可以在jsp的页面写一个方法来测试这个js;

functionlogin(){
	ajax({
url:"<%=path%>/user/adminLogin.action",data:{username:username.value,password:password.value},failure:function(request){
alert("Connectionerror");
},success:function(data){
	//这里写你成功后的方法
	alert("ok");
}
});
}
原文链接:https://www.f2er.com/ajax/164987.html

猜你在找的Ajax相关文章