使用XMLHttpRequest 向服务器端发送请求,其中具体的js如下:
var request = null;
var queryString; // 将保存 posted 的数据
/* 构建 Request 对象的封装函数
参数:
reqType: http 请求类型, post 或 get
url: 服务器端程序的url
asynch: 是否异步发送请求
respHandle: 处理响应的函数名
*/
function httpRequest(reqType, url, asynch, respHandle) {
// 基于 MOzilla 的浏览器
if (window.XMLHttpRequest) {
request = new XMLHttpRequest();
} else if(window.ActiveXObject) {
request = new ActiveXObject("Msxm12.XMLHTTP");
if (!request) {
request = new ActiveXObject("Microsoft.XMLHTTP");
}
}
//检测 request 是否为null
// 如果 ActiveXObject 还没有初始化
if (request) {
// 如果 reqType 参数是post, 那么函数的第五个参数是 posted 的数据
if (reqType.toLowerCase != "post") {
initReq(reqType, url, asynch, respHandle);
} else {
//posted 数据
var args = arguments[4];
if (args == null && args.length > 0) {
initReq(reqType, url, asynch, respHandle, args);
}
}
} else {
alert("Your brower does not permit the use of all of this application's features!");
}
}
function initReq(reqType, url, bool, respHandle) {
try {
// 指定处理http响应的函数
request.onreadystatechange=respHandle;
request.open(reqType,url,bool);
// 如果 reqType 参数是post, 那么函数的第五个参数是 posted 的数据
if (reqType.toLowerCase == "post") {
request.setRequestHaader("Content-Type","application/x-www-form-urlencoded;charset-UTF-8");
request.send(arguments[4]);
}
} catch (error) {
alert("The application cannot contact the server at the moment");
}
}
//处理请求
function handleResponse() {
// 完成响应
if (request.readyState == 4) {
// OK
if (request.status == 200) {
alert(request.responseText);
}
}
}