日期:2014-05-16  浏览次数:20772 次

Ajax.Request方法
Prototype 的 Ajax.Request 对象绑定了浏览器的 HTTP request ,使得浏览器中的页面不需要重复刷新。

Prototype.js : javascript工具包,是为了加快动态网页应用程序的开发。


Ajax.Request(
url,
{
method:method,
parameters:para,//HTTP请求的查询字符串
postBody:xmlString,
asynchronous:true,
setRequestHeader:Object,
onComplete:showResponse,
onError:errorFun
}
)

Ajax.Request对象在它完成接收响应的时候将调用showResponse方法,发送异步请求。(此方法是为兼容 prototype.js 而写,调用风格与 prototype 一致,使用Ajax.Request此方法请在页面中加载此js文件)

参数
url
必选项。数据发送的目标地址。
method
可选项。数据提交的方式,默认值为get。常用的还有post。
parameters
当 method 为 get 时是可选项,为 post 时是必选项。发送的数据,其形式为: name1=valeu1& name2=value2&name3=value3......
postBody
可选项。客户端发送的 xml 格式字符串。如果启用 postBody,那么 parameters 将被忽略。
asynchronous
可选项。指定请求是否异步,默认为true(异步)。
setRequestHeader
指定请求的头部字串。其值类型为“名称值对”形式的对象,比如:{"If-Modified-Since":"0", "SOAPAction":"http://tempuri.org/SBS_WebService", ... ... }
onComplete
可选项。请求成功时执行的回调函数,该函数默认把当前使用 xmlhttp 对象作为第一个参数。
onError
可选项。请求异常时执行的回调函数,该函数默认把当前使用 xmlhttp 对象作为第一个参数。
返回值
当前使用的 xmlhttp 对象。

描述
发送异步请求,并返回 xmlhttp 对象,该对象内置有 abort() 方法,用于提前终止请求。异步请求成功则执行 onComplete,失败则执行 onError 。并返回 xmlhttp 对象。
Ajax.Request 是个接口完整的 Ajax 方法,是 myJSFrame 中所有其他 Ajax 方法的核心方法。


示例
示例一:
<script type="text/javascript" >
   var myAjax = new Ajax.Request(
        "http://www.happyshow.org/form.asp",
        {
            method:"post",       //表单提交方式
            parameters:"name=acai&age=26&sex=male",   //提交的表单数据
            setRequestHeader:{"If-Modified-Since":"0"},     //禁止读取缓存数据
            onComplete:function(x){    //提交成功回调
                    alert(x.responseText);
            },
            onError:function(x){          //提交失败回调
                    alert(x.statusText);
            }
        }
   );
</script>


注:parameters 参数若是不列出,我们在开发中对于Form 表单这样的数据 可以这样处理

parameters:Form.serialize('FormName')   FormName  为页面中表单的 ID


示例二:
<script type="text/javascript" >
   var xmlString = "<root>"
                           +"<people><name>caizhongqi</name><sex>male</sex></people>"
                           +"<people><name>ahuang</name><sex>female</sex></people>"
                      +" </root>";
   var myAjax = new Ajax.Request(
        "http://www.happyshow.org/xmlform.asp",
        {
            method:"post",       //表单提交方式
            postBody:xmlString,   //提交的xml
            setRequestHeader:{"content-Type":"text/xml"},     //指定发送的数据为 xml 文档(非字符串)
            onComplete:function(x){    //提交成功回调
                    alert(x.responseXML.xml);
            },
            onError:function(x){          //提交失败回调
                    alert(x.statusText);
            }
        }
   );
</script>