我想把AJAX封装到类里面去,可是又不知道该如何写程序,写了一段却跑不起来,谁来帮我看下这段都有什么错误
<html>
<head>
<meta charset="utf-8" />
<title>AJAX Login Example</title>
<script src="http://192.168.1.63/common/class_ajax.js"></script>
<script>
// <![CDATA[
window.onload = function()
{
var ajax = new class_ajax();
}
function handle()
{
if (ajax.state == 4)
{
if (ajax.staus == 200)
{
document.write("This is function handle");
}
}
}
function sendmessage()
{
ajax.open("http://192.168.1.63/login/json.txt");
ajax.handle = handle;
ajax.send(NULL); }
// ]]>
</script>
</head>
<body>
<form>
<input type="button" onsubmit="sendmessage(); return FALSE;" />
</form>
</body>
</html>下面的类的函数class_ajax.js
function class_ajax()
{
var request;
var browser = navigator.appName;
this.state;
this.status;
this.handle;
this.text; if(browser != "Microsoft Internet Explorer")
{
request = new XMLHttpRequest();
}else{
var arrVersions = ["MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp", "Microsoft.XMLHttp"];
for (var i=0; i < arrVersions.length; i++)
{
try
{
request = new ActiveXObject(arrVersions[i]);
}
catch(exception)
{
}
}
} this.open = function(var url, var method = 0)
{
if (method === 0)
{
return request.open("GET", url, true);
}
else
{
return request.open("POST", url, true);
}
}
this.send = function(var data)
{
return send(data);
} this.change = function()
{
request.onreadystatechange = onreadystatechange;
} var onreadystatechange(var state, var handle)
{
this.state = request.readyState;
this.status = request.status;
this.text = request.responseText;
this.handle(); }
}
javascriptajaxxmlhttprequest
<html>
<head>
<meta charset="utf-8" />
<title>AJAX Login Example</title>
<script src="http://192.168.1.63/common/class_ajax.js"></script>
<script>
// <![CDATA[
window.onload = function()
{
var ajax = new class_ajax();
}
function handle()
{
if (ajax.state == 4)
{
if (ajax.staus == 200)
{
document.write("This is function handle");
}
}
}
function sendmessage()
{
ajax.open("http://192.168.1.63/login/json.txt");
ajax.handle = handle;
ajax.send(NULL); }
// ]]>
</script>
</head>
<body>
<form>
<input type="button" onsubmit="sendmessage(); return FALSE;" />
</form>
</body>
</html>下面的类的函数class_ajax.js
function class_ajax()
{
var request;
var browser = navigator.appName;
this.state;
this.status;
this.handle;
this.text; if(browser != "Microsoft Internet Explorer")
{
request = new XMLHttpRequest();
}else{
var arrVersions = ["MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp", "Microsoft.XMLHttp"];
for (var i=0; i < arrVersions.length; i++)
{
try
{
request = new ActiveXObject(arrVersions[i]);
}
catch(exception)
{
}
}
} this.open = function(var url, var method = 0)
{
if (method === 0)
{
return request.open("GET", url, true);
}
else
{
return request.open("POST", url, true);
}
}
this.send = function(var data)
{
return send(data);
} this.change = function()
{
request.onreadystatechange = onreadystatechange;
} var onreadystatechange(var state, var handle)
{
this.state = request.readyState;
this.status = request.status;
this.text = request.responseText;
this.handle(); }
}
javascriptajaxxmlhttprequest
var onreadystatechange = function(state, handle)
{
this.state = request.readyState;
this.status = request.status;
this.text = request.responseText;
this.handle();
}问题太多了,LZ还是先把JS的基础打好
这是我以前封装的一个,用法和jQuery的ajax用法类似。方法
Ajax.get(url[,data],fn) //get请求
Ajax.post(url[,data],fn) //post请求
Ajax.ajax({url:url,data:data,fn:fn,type:type})
Ajax.abort() //取消参数说明:
url 请求的地址
data 请求的数据
fn 回调函数
type 请求的类型
还在吗?你的看不太懂~我又修改了下我的,不过还是有个问题,回调函数那里总是提示我我传进去的函数指针不是一个函数。你帮看一下这里怎么回事
<script>
var ajax = new class_ajax();
window.onload = function()
{
sdmessage();
}
function sdmessage()
{
ajax.open("http://192.168.1.63/login/json.php?get=json", "GET");
ajax.change(function()
{
if (ajax.state == 4)
{
if (ajax.status == 200)
{
document.write(ajax.text);
}
}
})
ajax.send(null); }
</script>
function class_ajax()
{
var request;
this.state;
// this.handle;
this.status;
this.text; var browser = navigator.appName;
if(browser != "Microsoft Internet Explorer")
{
request = new XMLHttpRequest();
}else{
var arrVersions = ["MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp", "Microsoft.XMLHttp"];
for (var i=0; i < arrVersions.length; i++)
{
try
{
request = new ActiveXObject(arrVersions[i]);
}
catch(exception)
{
}
}
} this.open = function(url, method)
{
return request.open(method, url, true);
}
this.send = function(data)
{
return request.send(data);
} this.change = function(handle)
{
request.onreadystatechange = function(handle)
{
this.state = request.readyState;
this.status = request.status;
// this.text = request.responseText;
this.text = "hello ok!";
handle(); //执行到这里就提示handle不是一个函数!怎么修改才可以通过?
}
}
}
request.onreadystatechange = function(handle){}
改成
request.onreadystatechange = function(){}