在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 相关文章推荐
Extjs入门之动态加载树代码
Apr 09 Javascript
根据当前时间在jsp页面上显示上午或下午
Aug 18 Javascript
学习JavaScript设计模式(代理模式)
Dec 03 Javascript
值得分享和收藏的Bootstrap学习教程
May 12 Javascript
JavaScript学习笔记整理_用于模式匹配的String方法
Sep 19 Javascript
js实现登录框鼠标拖拽效果
Mar 09 Javascript
深入理解AngularJS中的ng-bind-html指令
Mar 27 Javascript
Node.js学习之TCP/IP数据通讯(实例讲解)
Oct 11 Javascript
JavaScript数组基于交换的排序示例【冒泡排序】
Jul 21 Javascript
vue 使用高德地图vue-amap组件过程解析
Sep 07 Javascript
ElementUI 修改默认样式的几种办法(小结)
Jul 29 Javascript
原生js实现自定义滚动条
Jan 20 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
PHP延迟静态绑定示例分享
2014/06/22 PHP
Smarty模板常见的简单应用分析
2016/11/15 PHP
php设计模式之装饰模式应用案例详解
2019/06/17 PHP
Javascript和HTML5利用canvas构建Web五子棋游戏实现算法
2013/07/17 Javascript
在页面中js获取光标/鼠标的坐标及光标的像素坐标
2013/11/11 Javascript
JavaScript中的常见问题解决方法(乱码,IE缓存,代理)
2013/11/28 Javascript
JavaScript将数据转换成整数的方法
2014/01/04 Javascript
jQuery统计上传文件大小的方法
2015/01/24 Javascript
jQuery实现瀑布流布局详解(PC和移动端)
2020/09/01 Javascript
jqueryMobile使用示例分享
2016/01/12 Javascript
Node.JS 循环递归复制文件夹目录及其子文件夹下的所有文件
2017/09/18 Javascript
vue-cli如何引入bootstrap工具的方法
2017/10/19 Javascript
vue 之 .sync 修饰符示例详解
2018/04/21 Javascript
vuejs前后端数据交互之从后端请求数据的实例
2018/08/11 Javascript
vue项目中引入vue-datepicker插件的详解
2019/05/14 Javascript
Vue+Node实现的商城用户管理功能示例
2019/12/23 Javascript
JavaScript基于面向对象实现的无缝滚动轮播示例
2020/01/17 Javascript
Python的设计模式编程入门指南
2015/04/02 Python
在Python中处理日期和时间的基本知识点整理汇总
2015/05/22 Python
编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法
2016/01/20 Python
python实现域名系统(DNS)正向查询的方法
2016/04/19 Python
python3使用scrapy生成csv文件代码示例
2017/12/28 Python
python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现
2018/06/11 Python
Windows下PyCharm安装图文教程
2018/08/27 Python
python-opencv 将连续图片写成视频格式的方法
2019/01/08 Python
python隐藏终端执行cmd命令的方法
2019/06/24 Python
Python 批量刷博客园访问量脚本过程解析
2019/08/30 Python
python程序 创建多线程过程详解
2019/09/23 Python
Numpy之将矩阵拉成向量的实例
2019/11/30 Python
Python容器类型公共方法总结
2020/08/19 Python
python基于pexpect库自动获取日志信息
2021/02/01 Python
英语演讲稿范文
2014/01/03 职场文书
当你找不到方向的时候,不妨读读刘备的一生
2019/08/05 职场文书
Python接口自动化之文件上传/下载接口详解
2022/04/05 Python
macos系统如何实现微信双开? mac登录两个微信以上微信的技巧
2022/07/23 数码科技