在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 相关文章推荐
弹出层之1:JQuery.Boxy (一) 使用介绍
Oct 06 Javascript
基于JQUERY的多级联动代码
Jan 24 Javascript
js获取class的所有元素
Mar 28 Javascript
javascript:;与javascript:void(0)使用介绍
Jun 05 Javascript
特殊情况下如何获取span里面的值
May 20 Javascript
bootstrap-datetimepicker实现只显示到日期的方法
Nov 25 Javascript
对称加密与非对称加密优缺点详解
Feb 06 Javascript
js使用i18n实现页面国际化的方法
May 09 Javascript
新手必须知的Node.js 4个JavaScript基本概念
Sep 16 Javascript
vue  自定义组件实现通讯录功能
Sep 30 Javascript
使用Angular Cli如何创建Angular私有库详解
Jan 30 Javascript
vue项目中自定义video视频控制条的实现代码
Apr 26 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制作文本式留言板
2015/03/18 PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
2016/01/25 PHP
Smarty简单生成表单元素的方法示例
2016/05/23 PHP
用JavaScript修改CSS属性的代码
2013/05/06 Javascript
IE中图片的onload事件无效问题和解决方法
2014/06/06 Javascript
jQuery中click事件的定义和用法
2014/12/20 Javascript
JQUERY表单暂存功能插件分享
2016/02/23 Javascript
Angular 2父子组件数据传递之@ViewChild获取子组件详解
2017/07/04 Javascript
Vue computed计算属性的使用方法
2017/07/14 Javascript
gulp安装以及打包合并的方法教程
2017/11/19 Javascript
微信小程序分享功能之按钮button 边框隐藏和点击隐藏
2018/06/14 Javascript
[49:07]VGJ.T vs Optic Supermajor小组赛D组 BO3 第二场 6.3
2018/06/04 DOTA
python实现在windows下操作word的方法
2015/04/28 Python
实现python版本的按任意键继续/退出
2016/09/26 Python
浅谈Python的垃圾回收机制
2016/12/17 Python
初学python的操作难点总结(新手必看篇)
2017/08/03 Python
TensorFlow高效读取数据的方法示例
2018/02/06 Python
Django框架orM与自定义SQL语句混合事务控制操作
2019/06/27 Python
Windows上安装tensorflow  详细教程(图文详解)
2020/02/04 Python
Django 设置多环境配置文件载入问题
2020/02/25 Python
Anconda环境下Vscode安装Python的方法详解
2020/03/29 Python
详解python datetime模块
2020/08/17 Python
Django websocket原理及功能实现代码
2020/11/14 Python
python进行二次方程式计算的实例讲解
2020/12/06 Python
css3 自定义字体font-face使用介绍
2014/05/14 HTML / CSS
旧时光糖果:Old Time Candy
2018/02/05 全球购物
台湾家适得:Homeget
2019/02/11 全球购物
bonprix匈牙利:女士、男士和儿童服装
2019/07/19 全球购物
意大利奢侈品综合电商网站:MODES
2019/12/14 全球购物
国际花店:Pickup Flowers
2020/04/10 全球购物
J2EE中的容器都包括哪些
2013/08/21 面试题
拒绝黄毒毒宣传标语
2014/06/26 职场文书
安全在我心中演讲稿
2014/09/01 职场文书
2014年教学工作总结
2014/11/13 职场文书
2015年乡镇发展党员工作总结
2015/03/31 职场文书
各种货币符号快捷输入
2022/02/17 杂记