突破AsctionScrip安全沙箱限制,网页数据调用中转站

  
  众所周知,由于Flash8.0以上版本的沙箱问题,使得Player无法直接获取其他网站上的资源,即使那些资源可以通过HTTP来访问. 该作者使用JSP做为中转程序,间接通过本机JSP网页获取对方服务器数据,再提供给本机的SWF来使用,这个想法可以说的确很有新意.
来源:make by 蜘蛛  协助: 元素,白茶
//下面是程序范例

http://flex.icptj.com:8080/zdic.mxml <script type="text/javascript"> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>

※适用于想利用AS3或AS2进行垮域加载网页而又受到安全沙箱 的限制时,即可使用本中传站
以下以as3为例来演示用法:

1.先调用本站的安全策略文件 (http://flex.icptj.com:8080/system/loadPolicyFile.xml):

Security.loadPolicyFile(http://flex.icptj.com:8080/system/loadPolicyFile.xml);

2.之后就可以用URLLoader来加载本中转页:

var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest("http://flex.icptj.com:8080/systemt/Security");

3.最后一步就是用post或get方法传递几个参数过来:

var vars:URLVariables=new URLVariables();
vars.url="http://www.xxx.xxx";       //这参数为你要加载的目标网页地址
vars.method="POST/GET";        // 对目标网页使用POST或GET方法传递参数
vars.args="key1=value1;key2=value2";    //对目标网页传递的参数, "="号左边的是参数名,"="右边的是值,每组参数间用";"号隔开
vars.meta="key1=value1;key2=value2";   //设置一般请求属性。 key-用于识别请求的关键字,value-与该键关联的值。 此叁数可以不设置
vars.encoding="urf-8";          //设置字符编码 ,默认是utf-8;
request.data=vars;
loader.load(request);

/**
* 注意,当参数中有中文时,FLASH内一定要使用UTF-8码
* 即:
* System.useCodePage=true;
* 一定要为ture,否则服务器接收参数时会出来乱码
*/

4.如无意外,你已经取得目标网页上的数据

你也可以直接在网页上测试本中转站的实现效果,
如,通过中转取得百度上的查找的数据,我要查找的关键字是"swf",
可向百度用get方法传递参数wd=swf,具体实现如下:
http://flex.icptj.com:8080/system/Security?url=http://www.baidu.com/s&args=wd=swf&encoding=gb2312&method=GET
直接在IE上打开此地址可得到效果,因为百度使用gb2312编码,所以encoding=gb2312,
如果要像多个args参数,可以用";"号隔开,如args=wd=swf;bs=flex
以下是FLEX的实现效果:
汉语字典:     http://flex.icptj.com:8080/zdic.mxml
拼音转换+真人发音: http://flex.icptj.com:8080/samplers.mxml

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值