欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

直接获得Ajax返回值 博客分类: Ajax AjaxDWRMicrosoft浏览器Servlet

程序员文章站 2024-03-23 19:38:40
...
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方法限制提交内容。