在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 相关文章推荐
大家未必知道的Js技巧收藏
Apr 07 Javascript
JQuery给元素添加/删除节点比如select
Apr 02 Javascript
关于ExtJS4.1:快捷键支持的问题
Apr 24 Javascript
jQuery+jRange实现滑动选取数值范围特效
Mar 14 Javascript
jQuery实现可以编辑的表格实例详解【附demo源码下载】
Jul 09 Javascript
Node.js中使用jQuery的做法
Aug 17 Javascript
Javascript中数组去重与拍平的方法示例
Feb 03 Javascript
JS正则表达式验证中文字符
May 08 Javascript
Echarts之悬浮框中的数据排序问题
Nov 08 Javascript
JavaScript中import用法总结
Jan 20 Javascript
在实例中重学JavaScript事件循环
Dec 03 Javascript
微信小程序自定义胶囊样式
Dec 27 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
用 PHP5 轻松解析 XML
2006/12/04 PHP
PHP 采集心得技巧
2009/05/15 PHP
解析将多维数组转换为支持curl提交的一维数组格式
2013/07/08 PHP
thinkphp文件引用与分支结构用法实例
2014/11/26 PHP
PHP函数import_request_variables()用法分析
2016/04/02 PHP
php实现自定义中奖项数和概率的抽奖函数示例
2017/05/26 PHP
php如何修改SESSION的生存存储时间的实例代码
2017/07/05 PHP
彻底搞懂PHP 变量结构体
2017/10/11 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
基于PHP实现短信验证码发送次数限制
2020/07/11 PHP
IE和Firefox在JavaScript应用中的兼容性探讨
2008/04/01 Javascript
js getElementsByTagName的简写方式
2010/06/27 Javascript
jquery 与NVelocity 产生冲突的解决方法
2011/06/13 Javascript
express的中间件basicAuth详解
2014/12/04 Javascript
最新最热最实用的15个jQuery插件汇总
2015/07/05 Javascript
Grunt入门教程(自动任务运行器)
2015/08/06 Javascript
AngularJS入门之动画
2016/07/27 Javascript
详解AngularJS 模块化
2017/06/14 Javascript
JavaScript变量类型以及变量作用域详解
2017/08/14 Javascript
浅谈Angularjs中不同类型的双向数据绑定
2018/07/16 Javascript
微信小程序webview组件交互,内联h5页面并网页实现微信支付实现解析
2019/08/16 Javascript
JS实现简易计算器
2020/02/14 Javascript
自己编程中遇到的Python错误和解决方法汇总整理
2015/06/03 Python
pygame 精灵的行走及二段跳的实现方法(必看篇)
2017/07/10 Python
Python中使用haystack实现django全文检索搜索引擎功能
2017/08/26 Python
Python输出各行命令详解
2018/02/01 Python
详解python的ORM中Pony用法
2018/02/09 Python
python 读入多行数据的实例
2018/04/19 Python
django反向解析URL和URL命名空间的方法
2018/06/05 Python
Python实现简单的2048小游戏
2021/03/01 Python
data:image data url 文件转为Blob上传后端的方法
2019/07/16 HTML / CSS
Stefania Mode英国:奢华设计师和时尚服装
2017/10/23 全球购物
家乐福台湾线上购物网:Carrefour台湾
2020/09/15 全球购物
C#基础面试题
2016/10/17 面试题
企业车辆管理制度
2014/01/24 职场文书
品德评语大全
2014/05/05 职场文书