在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 相关文章推荐
WEB 浏览器兼容 推荐收藏
May 14 Javascript
LABjs、RequireJS、SeaJS的区别
Mar 04 Javascript
原生javascript实现图片弹窗交互效果
Jan 12 Javascript
jQuery头像裁剪工具jcrop用法实例(附演示与demo源码下载)
Jan 22 Javascript
EasyUI闪屏EasyUI页面加载提示(原理+代码+效果图)
Feb 21 Javascript
微信公众号-获取用户信息(网页授权获取)实现步骤
Oct 21 Javascript
canvas实现粒子时钟效果
Feb 06 Javascript
jQuery复合事件用法示例
Jun 10 jQuery
Vuex的actions属性的具体使用
Apr 14 Javascript
详解Vue中的scoped及穿透方法
Apr 18 Javascript
elementUi vue el-radio 监听选中变化的实例代码
Jun 28 Javascript
vue2.0 获取从http接口中获取数据,组件开发,路由配置方式
Nov 04 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
全国FM电台频率大全 - 13 福建省
2020/03/11 无线电
Zend Framework动作助手FlashMessenger用法详解
2016/03/05 PHP
PHP基于GD库的图像处理方法小结
2016/09/27 PHP
一些不错的js函数ajax
2008/08/20 Javascript
CSS和JS标签style属性对照表(方便js开发的朋友)
2010/11/11 Javascript
Jquery模仿Baidu、Google搜索时自动补充搜索结果提示
2013/12/26 Javascript
Jquery 获取指定标签的对象及属性的设置与移除
2014/05/29 Javascript
Nodejs中读取中文文件编码问题、发送邮件和定时任务实例
2015/01/01 NodeJs
jQuery实现右侧显示可向左滑动展示的深色QQ客服效果代码
2015/10/23 Javascript
AngularJS基础 ng-mousemove 指令简单示例
2016/08/02 Javascript
Bootstrap实现基于carousel.js框架的轮播图效果
2017/05/02 Javascript
JavaScript限定范围拖拽及自定义滚动条应用(3)
2017/05/17 Javascript
vue项目base64字符串转图片的实现代码
2018/07/13 Javascript
使用electron制作满屏心特效的示例代码
2018/11/27 Javascript
微信小程序实现锚点功能
2019/11/20 Javascript
Node.js中文件系统fs模块的使用及常用接口
2020/03/06 Javascript
解决VUE项目使用Element-ui 下拉组件的验证失效问题
2020/11/07 Javascript
[57:18]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#3VP VS VG
2016/03/03 DOTA
Python实现模拟登录及表单提交的方法
2015/07/25 Python
Django 通过JS实现ajax过程详解
2019/07/30 Python
wxPython之wx.DC绘制形状
2019/11/19 Python
python实现连续变量最优分箱详解--CART算法
2019/11/22 Python
Python实现子类调用父类的初始化实例
2020/03/12 Python
Python全局变量与global关键字常见错误解决方案
2020/10/05 Python
美国最大的珠宝首饰网上商城:Jewelry.com
2016/07/22 全球购物
挪威太阳镜和眼镜网上商城:SmartBuyGlasses挪威
2016/08/20 全球购物
自荐信格式范文
2013/10/07 职场文书
机电一体化毕业生求职信
2013/11/02 职场文书
创伤外科专业推荐信范文
2013/11/19 职场文书
入党介绍人评语
2014/05/06 职场文书
会计学专业求职信
2014/07/17 职场文书
2014优秀党员事迹材料
2014/08/14 职场文书
大学生党员个人剖析材料
2014/10/08 职场文书
加入学生会自荐书
2015/03/05 职场文书
谁动了我的奶酪读书笔记
2015/06/30 职场文书
JavaScript实现登录窗体
2021/06/22 Javascript