在Ajax中使用Flash实现跨域数据读取的实现方法


Posted in Javascript onDecember 02, 2010

Ajax的跨域操作一直是一个难题,现目前主要的解决方法主要有:

1、JSONP(需要在服务器端支持)

2、IFrame(仅能在子域间操作)

3、页面代理(这个有点万能)

4、Access-Control-Allow-Origin(新版浏览器支持,需要在服务器端设置Header)

今天,小子再提供一种使用Flash进行跨域操作的方法。众所周之,其实Flash的跨域操作也是有限制的,不过,Flash的跨域配置比简单,只需要在站点根目录下放置crossdomain.xml即可。至于crossdomain.xml的用法,大家可以看看这篇文章:https://3water.com/article/25485.htm 这篇文章。

对于,这一系列操作,小子已经封装为jQuery的插件形式,将在文章末尾附上下载地址。

使用方法:

1、在页面引入jQuery与ajaxf.js文件。

2、在页面插入以下代码。首先将Flash安装到页面中。

$(document).ready(function() { 
$.ajaxf.install('/Files/zsea/flash4ajax.swf'); 
});

3、调用方法获取远程数据。

下面详细说一下插件所提供的方法:

$.ajaxf.install(swfpath)

安装Flash到页面,可指定Flash的路径。

$.ajaxf.ready(function(){})

Flash加载完后执行的函数。

$.ajaxf.isReady()

返回Flash是否已经加载完成。返回值为Boolean

$.ajaxf.ajax(p)

原生的ajax调用支持,p为一个对象,包括:callback,回调函数;type,方法类型,支持json,text,xml,script;url,读取数据的地址;method,请求的方法,支持get,post;data,发送的数据;contentType,请求的contentType头;header,Object对象,附加的请求头。

$.ajaxf.get(url, data, callback, type)

通过get方式获取数据

$.ajaxf.post(url, data, callback, type)

通过post方式获取数据

下面几个大家一看名称就知道函义就不多做解释

$.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)


下面演示一下如何获取获取优酷首页的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="获取数据" id='fdemo_get' />

可惜,小子不知道怎么在园子里运行页面上的代码。只有各位朋友自己测试了。
下载地址:/201012/yuanma/Ajaxf.rar
Javascript 相关文章推荐
javascript jQuery $.post $.ajax用法
Jul 09 Javascript
Google Map Api和GOOGLE Search Api整合实现代码
Jul 18 Javascript
html数组字符串拼接的最快方法
Sep 16 Javascript
JQuery 图片延迟加载并等比缩放插件
Nov 09 Javascript
Javascript基础教程之break和continue语句
Jan 18 Javascript
实例详解jQuery表单验证插件validate
Jan 18 Javascript
基于jquery实现最简单的选项卡切换效果
May 08 Javascript
浅谈在js传递参数中含加号(+)的处理方式
Oct 11 Javascript
js实现for循环跳过undefined值示例
Jul 02 Javascript
vue使用video.js进行视频播放功能
Jul 18 Javascript
弱类型语言javascript中 a,b 的运算实例小结
Aug 07 Javascript
vue iview的菜单组件Mune 点击不高亮的解决方案
Nov 01 Javascript
jQuery队列控制方法详解queue()/dequeue()/clearQueue()
Dec 02 #Javascript
JQuery 弹出框定位实现方法
Dec 02 #Javascript
Jquery replace 字符替换实现代码
Dec 02 #Javascript
jquery json 实例代码
Dec 02 #Javascript
JavaScript格式化数字的函数代码
Nov 30 #Javascript
JavaScript中使用正则匹配多条,且获取每条中的分组数据
Nov 30 #Javascript
基于prototype扩展的JavaScript常用函数库
Nov 30 #Javascript
You might like
星际RPG字典
2020/03/04 星际争霸
php防注
2007/01/15 PHP
Function eregi is deprecated (解决方法)
2013/06/21 PHP
PHP中each与list用法分析
2016/01/08 PHP
PHP调试及性能分析工具Xdebug详解
2017/02/09 PHP
关于javascript 回调函数中变量作用域的讨论
2009/09/11 Javascript
原生Js实现元素渐隐/渐现(原理为修改元素的css透明度)
2013/06/24 Javascript
javascript中数组array及string的方法总结
2014/11/28 Javascript
jQuery中focus事件用法实例
2014/12/26 Javascript
js实现的简单radio背景颜色选择器代码
2015/08/18 Javascript
仿百度换肤功能的简单实例代码
2016/07/11 Javascript
解析JavaScript数组方法reduce
2016/12/12 Javascript
bootstrapValidator表单验证插件学习
2016/12/30 Javascript
vue做移动端适配最佳解决方案(亲测有效)
2018/09/04 Javascript
详解Angular5/Angular6项目如何添加热更新(HMR)功能
2018/10/10 Javascript
为什么说JavaScript预解释是一种毫无节操的机制详析
2018/11/18 Javascript
原生JS检测CSS3动画是否结束的方法详解
2019/01/27 Javascript
vue中的过滤器实例代码详解
2019/06/06 Javascript
解决layui table表单提示数据接口请求异常的问题
2019/09/24 Javascript
微信小程序跨页面传递data数据方法解析
2019/12/13 Javascript
Python程序员面试题 你必须提前准备!(答案及解析)
2018/01/23 Python
python定时按日期备份MySQL数据并压缩
2019/04/19 Python
djano一对一、多对多、分页实例代码
2019/08/16 Python
Python3 A*寻路算法实现方式
2019/12/24 Python
计算Python Numpy向量之间的欧氏距离实例
2020/05/22 Python
Python类super()及私有属性原理解析
2020/06/15 Python
XML文档面试题
2015/08/05 面试题
农民工创业典型事迹
2014/01/25 职场文书
学校安全教育制度
2014/01/31 职场文书
职业培训师职业生涯规划
2014/02/18 职场文书
海飞丝的广告词
2014/03/20 职场文书
创先争优活动承诺书
2014/08/30 职场文书
公司内部升职自荐信
2015/03/27 职场文书
小学数学教师研修感悟
2015/11/18 职场文书
浅谈Mysql多表连接查询的执行细节
2021/04/24 MySQL
windows server 2016 域环境搭建的方法步骤(图文)
2022/06/25 Servers