prototype.js+ajax+随机数添加入url(原创)
引入:
<script type="text/javascript"? src="../js/prototype.js"></script>
調(diào)用:
<script type="text/javascript">
????????function configwin(id) {
生成隨機(jī)數(shù),避免重復(fù)向同一個(gè)url發(fā)送請(qǐng)求,瀏覽器的緩存會(huì)組織再次發(fā)送請(qǐng)求,所以,加上隨機(jī)數(shù):Math不用引入,直接使用即可,是js的對(duì)象,不是java的:
????????????var tmp = Math.random().toString();
????????????
?????????? var url = "sim_chart.action?tmp="+tmp+"&typeId="+id;
下面是調(diào)用prototype里的ajax向一個(gè)url發(fā)送請(qǐng)求:?
?????????? new Ajax.Request(url, {
???????????????? method:'post',
????????????????? asynchronous:false ,
????????????????? onSuccess:function(req){
??????????????????sAlert("chart/chart"+id+".jpg");
??????????????????? }
??????????????? });
??????????? }
?
?</script>
?
?
?
?
摘引:
Ajax.Request(
url,
{
method:method,
parameters:para,
postBody:xmlString,
asynchronous:true,
setRequestHeader:Object,
onComplete:completeFun,
onError:errorFun
}
)
發(fā)送異步請(qǐng)求。(此方法是為兼容 prototype.js 而寫(xiě),調(diào)用風(fēng)格與 prototype 一致,使用Ajax.Request此方法請(qǐng)?jiān)陧?yè)面中加載此js文件)
參數(shù)
url
必選項(xiàng)。數(shù)據(jù)發(fā)送的目標(biāo)地址。
method
可選項(xiàng)。數(shù)據(jù)提交的方式,默認(rèn)值為get。常用的還有post。
parameters
當(dāng) method 為 get 時(shí)是可選項(xiàng),為 post 時(shí)是必選項(xiàng)。發(fā)送的數(shù)據(jù),其形式為: name1=valeu1& name2=value2&name3=value3......
postBody
可選項(xiàng)。客戶端發(fā)送的 xml 格式字符串。如果啟用 postBody,那么 parameters 將被忽略。
asynchronous
可選項(xiàng)。指定請(qǐng)求是否異步,默認(rèn)為true(異步)。
setRequestHeader
指定請(qǐng)求的頭部字串。其值類(lèi)型為“名稱(chēng)值對(duì)”形式的對(duì)象,比如:{"If-Modified-Since":"0", "SOAPAction":"http://tempuri.org/SBS_WebService", ... ... }
onComplete
可選項(xiàng)。請(qǐng)求成功時(shí)執(zhí)行的回調(diào)函數(shù),該函數(shù)默認(rèn)把當(dāng)前使用 xmlhttp 對(duì)象作為第一個(gè)參數(shù)。
onError
可選項(xiàng)。請(qǐng)求異常時(shí)執(zhí)行的回調(diào)函數(shù),該函數(shù)默認(rèn)把當(dāng)前使用 xmlhttp 對(duì)象作為第一個(gè)參數(shù)。
返回值
當(dāng)前使用的 xmlhttp 對(duì)象。
描述
發(fā)送異步請(qǐng)求,并返回 xmlhttp 對(duì)象,該對(duì)象內(nèi)置有 abort() 方法,用于提前終止請(qǐng)求。異步請(qǐng)求成功則執(zhí)行 onComplete,失敗則執(zhí)行 onError 。并返回 xmlhttp 對(duì)象。
Ajax.Request 是個(gè)接口完整的 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",?? //提交的表單數(shù)據(jù)
??????????? setRequestHeader:{"If-Modified-Since":"0"},???? //禁止讀取緩存數(shù)據(jù)
??????????? onComplete:function(x){??? //提交成功回調(diào)
??????????????????? alert(x.responseText);
??????????? },
??????????? onError:function(x){????????? //提交失敗回調(diào)
??????????????????? alert(x.statusText);
??????????? }
??????? }
?? );
</script>
注:parameters 參數(shù)若是不列出,我們?cè)陂_(kāi)發(fā)中對(duì)于Form 表單這樣的數(shù)據(jù) 可以這樣處理
?parameters:Form.serialize('FormName')?? FormName? 為頁(yè)面中表單的 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"},???? //指定發(fā)送的數(shù)據(jù)為 xml 文檔(非字符串)
??????????? onComplete:function(x){??? //提交成功回調(diào)
??????????????????? alert(x.responseXML.xml);
??????????? },
??????????? onError:function(x){????????? //提交失敗回調(diào)
??????????????????? alert(x.statusText);
??????????? }
??????? }
?? );
</script>
總結(jié)
以上是生活随笔為你收集整理的prototype.js+ajax+随机数添加入url(原创)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 项目1在线交流平台-6.Elastics
- 下一篇: 武大94年博士年薪201万入职华为!学霸