在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 简介 让你知道extjs是什么
Dec 29 Javascript
json 入门基础教程 推荐
Oct 31 Javascript
node.js中的forEach()是同步还是异步呢
Jan 29 Javascript
轻松掌握JavaScript单例模式
Aug 25 Javascript
AngularJS 与Bootstrap实现表格分页实例代码
Oct 14 Javascript
vuejs绑定class和style样式
Apr 11 Javascript
Laravel整合Bootstrap 4的完整方案(推荐)
Jan 25 Javascript
浅谈在vue中用webpack打包之后运行文件的问题以及相关配置方法
Feb 21 Javascript
JS实现点击拉拽轮播图pc端移动端适配
Sep 05 Javascript
Vue中CSS动画原理的实现
Feb 13 Javascript
js事件机制----捕获与冒泡机制实例分析
May 22 Javascript
vue 动态创建组件的两种方法
Dec 31 Vue.js
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获取操作系统语言代码
2013/11/04 PHP
PHP编程开发怎么提高编程效率 提高PHP编程技术
2015/11/09 PHP
php实现背景图上添加圆形logo图标的方法
2016/11/17 PHP
php json_encode与json_decode详解及实例
2016/12/13 PHP
基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能
2017/02/24 PHP
总结一些PHP中好用但又容易忽略的小知识
2017/06/02 PHP
20个非常棒的 jQuery 幻灯片插件和教程分享
2011/08/23 Javascript
用js判断页面刷新或关闭的方法(onbeforeunload与onunload事件)
2012/06/22 Javascript
js中单引号与双引号冲突问题解决方法
2013/10/04 Javascript
浮动的div自适应居中显示的js代码
2013/12/23 Javascript
jQuery操作CheckBox的方法介绍(选中,取消,取值)
2014/02/04 Javascript
jQuery.lazyload+masonry改良图片瀑布流代码
2014/06/20 Javascript
javascript搜索框效果实现方法
2015/05/14 Javascript
jquery ajax分页插件的简单实现
2016/01/27 Javascript
Ajax分页插件Pagination从前台jQuery到后端java总结
2016/07/22 Javascript
微信开发 js实现tabs选项卡效果
2016/10/28 Javascript
一个非常好用的文字滚动的案例,鼠标悬浮可暂停[两种方案任选]
2016/12/01 Javascript
vue.js指令和组件详细介绍及实例
2017/04/06 Javascript
老生常谈angularjs中的$state.go
2017/04/24 Javascript
vue移动端下拉刷新和上拉加载的实现代码
2018/09/08 Javascript
详解Vue.js 可拖放文本框组件的使用
2021/03/03 Vue.js
Python学习思维导图(必看篇)
2017/06/26 Python
Python基于list的append和pop方法实现堆栈与队列功能示例
2017/07/24 Python
Sublime开发python程序的示例代码
2018/01/24 Python
基于python的图片修复程序(实现水印去除)
2018/06/04 Python
解决python升级引起的pip执行错误的问题
2018/06/12 Python
Python multiprocess pool模块报错pickling error问题解决方法分析
2019/03/20 Python
Python人脸识别第三方库face_recognition接口说明文档
2019/05/03 Python
ZWILLING双立人英国网上商店:德国刀具锅具厨具品牌
2018/05/15 全球购物
遇到的Mysql的面试题
2014/06/29 面试题
大学毕业生自荐书怎么写?
2014/01/06 职场文书
创建绿色社区汇报材料
2014/08/22 职场文书
2014小学年度工作总结
2014/12/20 职场文书
学生会生活部工作总结2015
2015/03/31 职场文书
夏洛特的网观后感
2015/06/15 职场文书
MYSQL事务的隔离级别与MVCC
2022/05/25 MySQL