比较完备的ajax核心代码

arlang 2007-12-31 05:00:39
以下代码是经过本人大量实验,结合他人资料总结出来一段ajax核心代码,比较灵活,传参可以用POST和GET,可以返回TEXT和XML
<script language="javascript">
// JavaScript Document
var http_request = false;
//发送请求,第一个参数为目的地址,第二个参数为请求方法只有"GET"、"POST"
//第三个参数为需要传送的参数列表key1=value1&key2=value2
//第四个参数为响应信息类型只能为"TEXT"或"XML"
function send_request(url,method,params,responseType)
{//初始化、指定处理函数、发送请求的函数
http_request = false;
//开始初始化XMLHttpRequest对象
if(window.XMLHttpRequest)
{ //Mozilla 浏览器
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType)
{//设置MiME类别
http_request.overrideMimeType('text/xml');
}
}
else if (window.ActiveXObject)
{ // IE浏览器
try
{
http_request = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{}
}
}
if (!http_request)
{ // 异常,创建对象实例失败
window.alert("不能创建XMLHttpRequest对象实例.");
return false;
}
http_request.onreadystatechange = function(){processRequest(responseType)};
if (method=="GET")
{
// 确定发送请求的方式和URL以及是否同步执行下段代码
http_request.open(method, url+"?"+params, true);
http_request.send(null);
}
else if(method=="POST")
{
http_request.open(method, url, true);
http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
http_request.send(params);
}
else
{
alert("无效的method!method只能为:GET或POST");
}
}

// 处理返回信息的函数
function processRequest(responseType)
{
if (http_request.readyState == 4)
{ // 判断对象状态
if (http_request.status == 200)
{ // 信息已经成功返回,开始处理信息

if (responseType=="TEXT")
{
alert(http_request.responseText);
}
else if(responseType=="XML")
{
alert(http_request.responseXML);
}
else
{
alert("无效的响应信息类型!只能为:TEXT或XML");
}

/*
alert(http_request.responseText);
*/

}
else
{ //页面不正常
alert("您所请求的页面有异常。");
}
}
}

function userCheck()
{
alert("a");
send_request('postback.asp',"POST","name=arlang","TEXT");
alert("b");
}
</script>
...全文
492 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuhongwei829 2008-05-06
  • 打赏
  • 举报
回复
顶~!!!!!!!!!!!!!
itymx 2008-05-04
  • 打赏
  • 举报
回复
这会正在学
lijianwei163 2008-05-04
  • 打赏
  • 举报
回复
学习了.............
meiZiNick 2008-05-01
  • 打赏
  • 举报
回复
以后需再关注,现在先帮你顶一下
snihwxf 2008-04-08
  • 打赏
  • 举报
回复
謝謝學習
魔豆爸 2008-04-08
  • 打赏
  • 举报
回复
恩。看看jquery吧。非常灵活。
arlang 2008-04-06
  • 打赏
  • 举报
回复
1
renxuanyao 2008-03-07
  • 打赏
  • 举报
回复
好哈学习
麻烦的一笔 2008-01-27
  • 打赏
  • 举报
回复
可以用AJAX框架,都封装好了,也不必要每次都写那些代码~
arlang 2008-01-26
  • 打赏
  • 举报
回复
当然知道,但这些方法比较少用,你可以再加else语句!
这是我在调试时用的,没考虑这些put delete等方法
surreyKong 2007-12-31
  • 打赏
  • 举报
回复
else
{
alert("无效的method!method只能为:GET或POST");
}


你知道有put delete等method吗?
rfc http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
arlang 2007-12-31
  • 打赏
  • 举报
回复
// 作者:arlang
//邮箱:huanghailang@sina.com
var http_request = false;
//发送请求,第一个参数为目的地址,第二个参数为请求方法只有"GET"、"POST"
//第三个参数为需要传送的参数列表key1=value1&key2=value2
//第四个参数为响应信息类型只能为"TEXT"或"XML"
//第五个参数为是否异步调用,true为异步,即不等请求返回就往下执行,false为同步,等返回再往下执行
function send_request(url,method,params,responseType,asyn)
{//初始化、指定处理函数、发送请求的函数
http_request = false;
//开始初始化XMLHttpRequest对象
if(window.XMLHttpRequest)
{ //Mozilla 浏览器
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType)
{//设置MiME类别
http_request.overrideMimeType('text/xml');
}
}
else if (window.ActiveXObject)
{ // IE浏览器
try
{
http_request = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{}
}
}
if (!http_request)
{ // 异常,创建对象实例失败
window.alert("不能创建XMLHttpRequest对象实例.");
return false;
}
http_request.onreadystatechange = function(){processRequest(responseType)};
if (method=="GET")
{
// 确定发送请求的方式和URL以及是否同步执行下段代码
http_request.open(method, url+"?"+params,asyn);
http_request.send(null);
}
else if(method=="POST")
{
http_request.open(method, url, asyn);
http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
http_request.send(params);
}
else
{
alert("无效的method!method只能为:GET或POST");
}
}

// 处理返回信息的函数
function processRequest(responseType)
{
if (http_request.readyState == 4)
{ // 判断对象状态
if (http_request.status == 200)
{ // 信息已经成功返回,开始处理信息

if (responseType=="TEXT")
{
alert(http_request.responseText);
}
else if(responseType=="XML")
{
alert(http_request.responseXML);
}
else
{
alert("无效的响应信息类型!只能为:TEXT或XML");
}

/*
alert(http_request.responseText);
*/

}
else
{ //页面不正常
alert("您所请求的页面有异常。");
}
}
}
arlang 2007-12-31
  • 打赏
  • 举报
回复

以上代码调用访法
send_request('postback.asp',"POST","name=arlang","TEXT",true);

52,792

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧