/*
* 开发人:王鸿鹄
* 日期 :2008年11月21日
* 方法名:getInfoFromUrl
* 参数
* @urlArg 请求URL地址
* @sendArg POST方式访问参数
* @getStateFunc 获取当前状态回调方法
* @getInfoFunc 获取返回信息回调方法
* @getErrMsgFunc 获取错误信息回调方法
* 返回值:boolean
* 功能 :该方法通过传入@urlArg以及@sendArg发送POST请求。
* 请求最终获得信息(value)由getInfoFunc(value)方法获得。
* 其中响应状态(state)由getStateFunc(state)方法获得。
* 其中错误信息(message)由getErrMsgFunc(message)方法获得。
* 方法最终返回 boolean 类型数值表示完成情况。
* 备注 :JavaScript不能跨域进行访问。
*/
function getInfoFromUrl(urlArg,sendArg,getStateFunc,getInfoFunc,getErrMsgFunc)
{
/* 初始化错误信息 */
var errMsg = "Error Message : ";
/* 实例化XMLHttpRequest */
var httpRequest;
try
{
httpRequest = new XMLHttpRequest();
}
catch(normalException)
{
try
{
httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(msxml2Exception)
{
try
{
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(microsoftException)
{
/* 处理实例化错误 */
errMsg = errMsg + "Create XMLHttpRequest Error !";
try
{
getErrMsgFunc(errMsg);
}
catch(funcException)
{
/* 未设定获取错误信息方法 */
}
return false;
}
}
}
/* 发送POST请求 */
try
{
httpRequest.open("POST",urlArg,true);
httpRequest.onreadystatechange = callBackFunc;
httpRequest.setRequestHeader( "Content-Type ", "application/x-www-form-urlencoded");
httpRequest.send(sendArg);
}
catch(postException)
{
errMsg = errMsg + "POST Request Error !";
try
{
getErrMsgFunc(errMsg);
}
catch(funcException)
{
/* 未设定获取错误信息方法 */
}
return false;
}
/* 构造回调方法 */
function callBackFunc()
{
try
{
getStateFunc(httpRequest.readystate);
}
catch(funcException)
{
/* 未设定获取状态方法 */
}
/* 获取完成状态 */
if(httpRequest.readystate == 4)
{
if(httpRequest.status == 200)
{
try
{
getInfoFunc(httpRequest.responseText);
}
catch(funcException)
{
/* 未设定获取返回信息方法 */
}
httpRequest.abort();
return true;
}
else
{
errMsg = errMsg + "The Status of XMLHttpRequest is " + httpRequest.status + " .";
try
{
getErrMsgFunc(errMsg);
}
catch(funcException)
{
/* 未设定获取错误信息方法 */
}
return false;
}
}
}
}
/*
* 开发人:王鸿鹄
* 日期 :2008年11月21日
* 方法名:getXmlFromUrl
* 参数
* @urlArg 请求URL地址
* @getInfoFunc 获取返回信息回调方法
* @getErrMsgFunc 获取错误信息回调方法
* 返回值:boolean
* 功能 :该方法通过传入@urlArg发送GET请求,要求该访问地址必须返回XML文档。
* 请求最终获得信息(XMLDocument)由getInfoFunc(XMLDocument)方法获得。
* 其中错误信息(message)由getErrMsgFunc(message)方法获得。
* 方法最终返回 boolean 类型数值表示完成情况。
* 备注 :
* 1).JavaScript不能跨域进行访问。
* 2).取得DataSet生成XML中第一行第一个单元格文本示例代码xmlDoc.documentElement.childNodes[0].childNodes[0].childNodes[0].text;
*/
function getXmlFromUrl(urlArg,getInfoFunc,getErrMsgFunc)
{
/* 初始化错误信息 */
var errMsg = "Error Message : ";
/* 定义XML文档变量 */
var xmlDoc;
/* 尝试实例化XML文档变量 */
try
{
if(window.ActiveXObject)
{
xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
xmlDoc.async = false;
}
else if (document.implementation && document.implementation.createDocument)
{
xmlDoc = document.implementation.createDocument('', '', null);
}
}
catch(createException)
{
errMsg = errMsg + "Create XMLDocument Error !";
try
{
getErrMsgFunc(errMsg);
}
catch(funcException)
{
/* 未设定获取错误信息方法 */
}
return false;
}
/* 发送请求获得XML文档 */
try
{
xmlDoc.load(urlArg);
try
{
getInfoFunc(xmlDoc);
}
catch(funcException)
{
/* 未设定获取XML文档方法 */
}
return true;
}
catch(loadException)
{
errMsg = errMsg + "Load Xml or Url Error !";
try
{
getErrMsgFunc(errMsg);
}
catch(funcException)
{
/* 未设定获取错误信息方法 */
}
return false;
}
}
/*
* 调用方法示例:
*
function imgEventFunc()
{
var url = "请填写同域地址";
function pageGetStateFunc(state)
{
alert(state);
}
function pageGetInfoFunc(value)
{
document.write(value);
}
function pageGetErrMsgFunc(message)
{
document.write(message);
}
getInfoFromUrl(url,null,pageGetStateFunc,pageGetInfoFunc,pageGetErrMsgFunc);
}
*
*/
没有合适的资源?快使用搜索试试~ 我知道了~
封装JavaScript / Ajax 脚本
共1个文件
js:1个
需积分: 3 11 下载量 3 浏览量
2008-11-22
09:27:10
上传
评论
收藏 2KB RAR 举报
温馨提示
自己总结的JavaScript异步访问的方法。其中有比较详尽的注释。第一个方法返回字符串。第二个方法返回一个XMLDocument对象,可以通过URL生成一个XML文档。
资源推荐
资源详情
资源评论
收起资源包目录
AJAXFuncScript.rar (1个子文件)
AJAXFuncScript.js 7KB
共 1 条
- 1
资源评论
嘿逗
- 粉丝: 6
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功