在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 相关文章推荐
新浪的图片新闻效果
Jan 13 Javascript
无语,javascript居然支持中文(unicode)编程!
Apr 12 Javascript
JS+DIV实现鼠标划过切换层效果的实例代码
Nov 26 Javascript
浅谈 jQuery 事件源码定位问题
Jun 18 Javascript
javascript获取当前鼠标坐标的方法
Jan 10 Javascript
JS基于Ajax实现的网页Loading效果代码
Oct 27 Javascript
jquery ztree实现树的搜索功能
Feb 25 Javascript
把多个JavaScript函数绑定到onload事件处理函数上的方法
Sep 04 Javascript
Bootstrap分页插件之Bootstrap Paginator实例详解
Oct 15 Javascript
localStorage的黑科技-js和css缓存机制
Feb 06 Javascript
Three.js如何实现雾化效果示例代码
Sep 27 Javascript
JS执行控制之节流模式实例分析
Dec 21 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
动态生成gif格式的图像要注意?
2006/10/09 PHP
php自定义错误处理用法实例
2015/03/20 PHP
php检查字符串中是否有外链的方法
2015/07/29 PHP
jQuery Ajax之load()方法
2009/10/12 Javascript
引入JS文件IE6报语法错误或缺少对象问题的解决方法
2014/01/09 Javascript
js实现键盘操作实现div的移动或改变的原理及代码
2014/06/23 Javascript
简单易用的倒计时js代码
2014/08/04 Javascript
很不错的两款Bootstrap Icon图标选择组件
2016/01/28 Javascript
多功能jQuery树插件zTree实现权限列表简单实例
2016/07/12 Javascript
JavaScript 栈的详解及实例代码
2017/01/22 Javascript
js下载文件并修改文件名
2017/05/08 Javascript
Vue.js 中的 $watch使用方法
2017/05/25 Javascript
jquery 一键复制到剪切板的实例
2017/09/20 jQuery
vue项目中的webpack-dev-sever配置方法
2017/12/14 Javascript
[48:20]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Windows下用py2exe将Python程序打包成exe程序的教程
2015/04/08 Python
使用Python神器对付12306变态验证码
2016/01/05 Python
Python 数据库操作 SQLAlchemy的示例代码
2019/02/18 Python
python三方库之requests的快速上手
2019/03/04 Python
解决python super()调用多重继承函数的问题
2019/06/26 Python
从训练好的tensorflow模型中打印训练变量实例
2020/01/20 Python
python实现坦克大战
2020/04/24 Python
完美解决keras保存好的model不能成功加载问题
2020/06/11 Python
通过自学python能找到工作吗
2020/06/21 Python
远程Wi-Fi宠物监控相机:Petcube
2017/04/26 全球购物
单位消防安全制度
2014/01/12 职场文书
互联网创业计划书写作技巧攻略
2014/03/23 职场文书
党员志愿者活动总结
2014/06/26 职场文书
国际贸易实训报告
2014/11/05 职场文书
大学毕业生自我评价
2015/03/02 职场文书
清明节寄语2015
2015/03/23 职场文书
中学教代会开幕词
2016/03/04 职场文书
演讲稿:​快乐,从不抱怨开始!
2019/04/02 职场文书
SpringCloud Function SpEL注入漏洞分析及环境搭建
2022/04/08 Java/Android
Spring Boot 实现 WebSocket
2022/04/30 Java/Android
CentOS7环境下MySQL8常用命令小结
2022/06/10 Servers