blog.Ring.idv.tw

跨網域請求(二) - Flash Plug-In

跨網域請求(二) - Flash Plug-In


本文接續著「跨網域請求(一) - Cross-Domain Script Tag」來繼續實作另一種透過Flash Plug-In的作法~

這種作法最大的缺點就是需要仰賴一個Plug-In的方式~

但隨著Flash Player Statistics所統計全世界可上網的電腦有安裝Flash Player就達到98.8%~ 所以此缺點看似影響並非太大~ 端看客官們如何取捨~

下述範例「flash.php」、「crossdomain.xml」須放在同一個網域之下

flash.php

<div><?=rand()+rand()?></div>

crossdomain.xml

這個「crossdomain.xml」須放置在根目錄下

<?xml version="1.0"?>
<cross-domain-policy>
   <allow-access-from domain="*" />
</cross-domain-policy>

ActionScript 3

這裡的ActionScript範例會執行外部的資源請求,並將請求所得到的值利用ExternalInterface呼叫「callJS()」的JavaScript,有興趣的人玩玩看吧~

var loader:URLLoader = new URLLoader();
sendRequest();
function sendRequest():void
{
	var request:URLRequest = new URLRequest("http://163.17.142.204/csproxy/flash.php?"+Math.random());
	request.method = URLRequestMethod.GET;

	loader.dataFormat = URLLoaderDataFormat.TEXT;
	loader.addEventListener(Event.COMPLETE, loader_complete);
	loader.load(request);
}
function loader_complete(e:Event):void
{
	var example:RegExp = new RegExp(/<div>(.*)<\/div>/);
	var trans = example.exec(loader.data);
	ExternalInterface.call("callJS",trans[1]);	
}

JavaScript

function callJS(result)
{
	alert(result);	
}

2008-03-29 01:32:32

Leave a Comment

Copyright (C) Ching-Shen Chen. All rights reserved.

::: 搜尋 :::

::: 分類 :::

::: Ads :::

::: 最新文章 :::

::: 最新回應 :::

::: 訂閱 :::

Atom feed
Atom Comment