直接获得Ajax返回值

1、直接获得DWR返回值,不用写回调函数
//创建对象
function DwrObject(){
//后台类使用的参数,公有属性
this.param1="";
this.param2="";
this.param3="";
//私有属性
var result = "";
this.getResult=function(){
DWREngine.setAsync(false);
yourDWRClass.methodName(this.param1,this.param2,this.param3,
function(data){result = data;});
DWREngine.setAsync(true);
return result;
}
}
//调用
function yourMethod(){
var dwrObject = new DwrObject();
dwrObject.param1="内容";
dwrObject.param2="内容";
dwrObject.param3="内容";
alert("返回结果:" + dwrObject.getResult());
}
特点:不需要action参与,直接调用后台类,可以避免表单提交时get方法带来的内容有限的限制。
2、使用原生态Ajax直接获得返回值
//定义对象
var result="";
function textHandler(text){
result=text;
}
function requestURL(urlstr){
var xmlhttp = getXMLHttpRequest();
var handlerFunction = getReadyStateHandler(xmlhttp,textHandler);
xmlhttp.onreadystatechange = handlerFunction;
xmlhttp.open("GET", urlstr, false);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlhttp.send(null);
return result;
}
function getXMLHttpRequest() {
var xmlreq = false;
result="";
if (window.XMLHttpRequest) {
// 在非Microsoft浏览器中创建XMLHttpRequest对象
xmlreq = new XMLHttpRequest();
} else if (window.ActiveXObject) {
//通过MS ActiveX创建XMLHttpRequest
try {
// 尝试按新版InternetExplorer方法创建
xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e1) {
// 创建请求的ActiveX对象失败
try {
// 尝试按老版InternetExplorer方法创建
xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
// 不能通过ActiveX创建XMLHttpRequest
}
}
}
return xmlreq;
}
function getReadyStateHandler(req,responseTextHandler) {
// 返回一个监听XMLHttpRequest实例的匿名函数
return function () {
// 如果请求的状态是 完成
if (req.readyState == 4) {
// 检查是否成功接收了服务器响应
if (req.status == 200) {
// 将载有响应信息的XML传递到处理函数
responseTextHandler(req.responseText);
} else {
// 有HTTP问题发生
// alert("HTTP error: "+req.status);
return false;
}
}
}
}
//使用
var url="你的请求路径(urld地址,servlet,action)";
var result = requestURL(url);
alert("返回结果:" + result);
特点:依赖url请求,通过后台输出流返回结果,会因为form的get方法限制提交内容。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值