Ajax.Request()筆記

首次接觸web前端,遇到一些技術問題,隨手記錄下來。
Ajax( Asynchronous JavaScript and XML),異步的 JavaScript 和 XML。Ajax是利用javascript語言,在不從新加載整個頁面的狀況下,與服務器交換數據並更新部份內容的方法,核心思想是採用異步請求的方式與服務器交換數據。XMLHttpRequest對象是Ajax的基礎。
Javascript有許多庫都封裝實現了Ajax方法。Ajax.Request()即是Prototype.js庫(貌似這個庫已經比較老,資料也比較少,不少文章都是0七、08年的)的一個Ajax請求類。
Ajax.Request(
url,
{
method:method,
parameters:para,
postBody:xmlString,
asynchronous:true,
setRequestHeader:Object,
onComplete:completeFun,
onError:errorFun
}
}
參數
url
必選項。數據發送的目標地址。
method
可選項。數據提交的方式,默認值爲get。經常使用的還有post。
parameters
當 method 爲 get 時是可選項,爲 post 時是必選項。參數構造形式爲{key1:value,key2:value2, .......}。發送的數據,其形式爲: 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 對象。javascript

Prototype 的 AJAX 對象定義了完整的回調系列,它們按照下述的順序被觸發:

一、onCreate(實際上這是被 AJAX 全局響應器 保留的回調)。
二、onUninitialized(對應於「建立」[Created])
三、onLoading(對應於「初始化」[Initialized])
四、onLoaded(對應於「請求發送」[Request sent])
五、onInteractive(對應於「響應接收」[Response being received])
六、onXYZ(XYZ 表示響應的狀態代碼,參見狀態代碼)對應於指定的響應狀態代碼回調、onSuccess 或 onFailure(見下文)
七、onComplete
最後兩步對應於響應接收完成(Response received)。若是定義了一個與指定狀態代碼相關的回調函數,它將會被調用。不然,若是 onSuccess 被定義而且響應被認爲是成功的(見下文),onSuccess 就會被調用,若是響應不成功而且定義了 onFailure,則調用 onFailure。onComplete 在上述回調結束後纔會被調用。前端

幾個代碼示例:
var myrequest = new Ajax.Request('/rules/enable1/check_capture',{method:'POST', parameters:{'Id':10000,'user':'Joe'},onComplete:dosome});
function dosome(x){
if (x.responseText == "1"){
//do something
}else if(x.responseText == "0"){
//do something
}
貌似回調函數只能傳入一個參數,因此若是想用其餘參數能夠這樣。
var ct='this is a test'
var myrequest = new Ajax.Request('/rules/enable1/check_capture',{method:'POST', parameters:param,onComplete:function(x){
if (x.responseText == "1"){
//do something about ct
}else if(x.responseText == "0"){
//do something about ct
}});
function(x)裏的x參數不能省略,不能直接調用myrequest。java

參考資料:Ajax選項web

相關文章
相關標籤/搜索