在Ajax中使用Flash實(shí)現(xiàn)跨域數(shù)據(jù)讀取的實(shí)現(xiàn)方法
更新時(shí)間:2010年12月02日 13:13:36 作者:
今天,小子再提供一種使用Flash進(jìn)行跨域操作的方法。眾所周之,其實(shí)Flash的跨域操作也是有限制的,不過,F(xiàn)lash的跨域配置比簡(jiǎn)單,只需要在站點(diǎn)根目錄下放置crossdomain.xml即可。
Ajax的跨域操作一直是一個(gè)難題,現(xiàn)目前主要的解決方法主要有:
1、JSONP(需要在服務(wù)器端支持)
2、IFrame(僅能在子域間操作)
3、頁(yè)面代理(這個(gè)有點(diǎn)萬(wàn)能)
4、Access-Control-Allow-Origin(新版瀏覽器支持,需要在服務(wù)器端設(shè)置Header)
今天,小子再提供一種使用Flash進(jìn)行跨域操作的方法。眾所周之,其實(shí)Flash的跨域操作也是有限制的,不過,F(xiàn)lash的跨域配置比簡(jiǎn)單,只需要在站點(diǎn)根目錄下放置crossdomain.xml即可。至于crossdomain.xml的用法,大家可以看看這篇文章:http://www.dbjr.com.cn/article/25485.htm 這篇文章。
對(duì)于,這一系列操作,小子已經(jīng)封裝為jQuery的插件形式,將在文章末尾附上下載地址。
使用方法:
1、在頁(yè)面引入jQuery與ajaxf.js文件。
2、在頁(yè)面插入以下代碼。首先將Flash安裝到頁(yè)面中。
$(document).ready(function() {
$.ajaxf.install('/Files/zsea/flash4ajax.swf');
});
3、調(diào)用方法獲取遠(yuǎn)程數(shù)據(jù)。
下面詳細(xì)說一下插件所提供的方法:
$.ajaxf.install(swfpath)
安裝Flash到頁(yè)面,可指定Flash的路徑。
$.ajaxf.ready(function(){})
Flash加載完后執(zhí)行的函數(shù)。
$.ajaxf.isReady()
返回Flash是否已經(jīng)加載完成。返回值為Boolean
$.ajaxf.ajax(p)
原生的ajax調(diào)用支持,p為一個(gè)對(duì)象,包括:callback,回調(diào)函數(shù);type,方法類型,支持json,text,xml,script;url,讀取數(shù)據(jù)的地址;method,請(qǐng)求的方法,支持get,post;data,發(fā)送的數(shù)據(jù);contentType,請(qǐng)求的contentType頭;header,Object對(duì)象,附加的請(qǐng)求頭。
$.ajaxf.get(url, data, callback, type)
通過get方式獲取數(shù)據(jù)
$.ajaxf.post(url, data, callback, type)
通過post方式獲取數(shù)據(jù)
下面幾個(gè)大家一看名稱就知道函義就不多做解釋
$.ajaxf.getText(url, data, callback)
$.ajaxf.getJSON(url, data, callback)
$.ajaxf.getScript(url, data, callback)
$.ajaxf.postJSON(url, data, callback)
$.ajaxf.postText(url, data, callback)
下面演示一下如何獲取獲取優(yōu)酷首頁(yè)的HTML代碼。
<script type="text/javascript">
$(document).ready(function() {
$.ajaxf.install('/Files/zsea/flash4ajax.swf');
$("#fdemo_get").click(function() {
$.ajaxf.getText("http://www.youku.com/", '', function(r) {
$("#fdemo").val(r);
});
});
});
</script>
<textarea id='fdemo' style='width: 500px; height: 300px;'></textarea>
<br />
<input type="button" value="獲取數(shù)據(jù)" id='fdemo_get' />
可惜,小子不知道怎么在園子里運(yùn)行頁(yè)面上的代碼。只有各位朋友自己測(cè)試了。
下載地址:/201012/yuanma/Ajaxf.rar
1、JSONP(需要在服務(wù)器端支持)
2、IFrame(僅能在子域間操作)
3、頁(yè)面代理(這個(gè)有點(diǎn)萬(wàn)能)
4、Access-Control-Allow-Origin(新版瀏覽器支持,需要在服務(wù)器端設(shè)置Header)
今天,小子再提供一種使用Flash進(jìn)行跨域操作的方法。眾所周之,其實(shí)Flash的跨域操作也是有限制的,不過,F(xiàn)lash的跨域配置比簡(jiǎn)單,只需要在站點(diǎn)根目錄下放置crossdomain.xml即可。至于crossdomain.xml的用法,大家可以看看這篇文章:http://www.dbjr.com.cn/article/25485.htm 這篇文章。
對(duì)于,這一系列操作,小子已經(jīng)封裝為jQuery的插件形式,將在文章末尾附上下載地址。
使用方法:
1、在頁(yè)面引入jQuery與ajaxf.js文件。
2、在頁(yè)面插入以下代碼。首先將Flash安裝到頁(yè)面中。
復(fù)制代碼 代碼如下:
$(document).ready(function() {
$.ajaxf.install('/Files/zsea/flash4ajax.swf');
});
3、調(diào)用方法獲取遠(yuǎn)程數(shù)據(jù)。
下面詳細(xì)說一下插件所提供的方法:
$.ajaxf.install(swfpath)
安裝Flash到頁(yè)面,可指定Flash的路徑。
$.ajaxf.ready(function(){})
Flash加載完后執(zhí)行的函數(shù)。
$.ajaxf.isReady()
返回Flash是否已經(jīng)加載完成。返回值為Boolean
$.ajaxf.ajax(p)
原生的ajax調(diào)用支持,p為一個(gè)對(duì)象,包括:callback,回調(diào)函數(shù);type,方法類型,支持json,text,xml,script;url,讀取數(shù)據(jù)的地址;method,請(qǐng)求的方法,支持get,post;data,發(fā)送的數(shù)據(jù);contentType,請(qǐng)求的contentType頭;header,Object對(duì)象,附加的請(qǐng)求頭。
$.ajaxf.get(url, data, callback, type)
通過get方式獲取數(shù)據(jù)
$.ajaxf.post(url, data, callback, type)
通過post方式獲取數(shù)據(jù)
下面幾個(gè)大家一看名稱就知道函義就不多做解釋
$.ajaxf.getText(url, data, callback)
$.ajaxf.getJSON(url, data, callback)
$.ajaxf.getScript(url, data, callback)
$.ajaxf.postJSON(url, data, callback)
$.ajaxf.postText(url, data, callback)
下面演示一下如何獲取獲取優(yōu)酷首頁(yè)的HTML代碼。
復(fù)制代碼 代碼如下:
<script type="text/javascript">
$(document).ready(function() {
$.ajaxf.install('/Files/zsea/flash4ajax.swf');
$("#fdemo_get").click(function() {
$.ajaxf.getText("http://www.youku.com/", '', function(r) {
$("#fdemo").val(r);
});
});
});
</script>
<textarea id='fdemo' style='width: 500px; height: 300px;'></textarea>
<br />
<input type="button" value="獲取數(shù)據(jù)" id='fdemo_get' />
可惜,小子不知道怎么在園子里運(yùn)行頁(yè)面上的代碼。只有各位朋友自己測(cè)試了。
下載地址:/201012/yuanma/Ajaxf.rar
您可能感興趣的文章:
- 用Ajax讀取XML格式的數(shù)據(jù)
- Ajax+Asp源代碼]讀取數(shù)據(jù)庫(kù)內(nèi)容的表格(沒有用框架)
- Ajax讀取數(shù)據(jù)到表格的實(shí)現(xiàn)代碼
- Ajax讀取數(shù)據(jù)之分頁(yè)顯示篇實(shí)現(xiàn)代碼
- ajax讀取數(shù)據(jù)庫(kù)內(nèi)容實(shí)現(xiàn)二級(jí)聯(lián)動(dòng)下拉選擇菜單示例
- AJAX如何接收J(rèn)SON數(shù)據(jù)示例介紹
- JQuery處理json與ajax返回JSON實(shí)例代碼
- jquery的ajax和getJson跨域獲取json數(shù)據(jù)的實(shí)現(xiàn)方法
- ThinkPHP中使用ajax接收json數(shù)據(jù)的方法
- 如何使用ajax讀取Json中的數(shù)據(jù)
相關(guān)文章
javascript伸縮型菜單實(shí)現(xiàn)代碼
這是一款真正的JavaScript伸展收縮型菜單,鼠標(biāo)放上看一看,是不是很酷?鼠標(biāo)劃出菜單項(xiàng)的時(shí)候,背景會(huì)伸長(zhǎng)。菜單沒有加鏈接,想用的自己加,再美化一下,絕對(duì)夠個(gè)性吧。2015-11-11JS/CSS實(shí)現(xiàn)字符串單詞首字母大寫功能
這篇文章主要介紹了JS/CSS實(shí)現(xiàn)字符串單詞首字母大寫功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09js判斷出兩個(gè)字符串最大子串的函數(shù)實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄猨s判斷出兩個(gè)字符串最大子串的函數(shù)實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11快速查找數(shù)組中的某個(gè)元素并返回下標(biāo)示例
最近在寫jquery的combobox插件時(shí)遇到效率問題,再加上jquery選擇器的類帥選,導(dǎo)致效率很慢,采用以下方式二,可以輕松解決此問題2013-09-09全面理解面向?qū)ο蟮?JavaScript(來自ibm)
要掌握好 JavaScript,首先一點(diǎn)是必須摒棄一些其他高級(jí)語(yǔ)言如 Java、C# 等類式面向?qū)ο笏季S的干擾,全面地從函數(shù)式語(yǔ)言的角度理解 JavaScript 原型式面向?qū)ο蟮奶攸c(diǎn)2013-11-11