crossdomain.xml server timeout 或沒被allow的EVEN處理

Flash常見問題&教材 2008/06/10 10:46
在flash 妳要跨網域做loadVars flash Player ㄧ定會去問crossdomain.xml若問不過  AS2 沒有任何EVENT會觸發跟你說現在是什麼情形...Orz

但AS3雖然有onSecurityError但該DOMAIN只要第一次被觸發這個EVENT之後,flash Player就不會去問這個DOMAIN了,會在client端(flash Player)就擋掉所有DOMAIN的request,包含security.loadPolicyFile也是,所以你若是crossdomain.xml server timeout 你真的只能重LOAD頁面,不過若SERVER可以搭配reWrite讓flash Player以為你是訪問不同的DOMAIN那就有解了

作法:
AS:

var URLarr:Array=new Array("otherdomainA.im.tv", "otherdomainB.im.tv", "otherdomainC.im.tv");
var idx=0;

function loadXML(){
   var srt = URLarr[idx]+"/aa.txt";
   var my_lv:LoadVars = new LoadVars();
   my_lv.onLoad = function(success:Boolean) {
      if (success) {
        myHtml.text = this.toString();
        clearInterval(IntNum);
      } else {
        trace("Error loading/parsing LoadVars.");
      }
   };
  my_lv.load(srt);//這一行會觸發檢查http://otherdomain.im.tv/crossdomain.xml
  idx++
}
var IntNum = setInterval(loadXML, 1000);

server的rewrite
設成若request為
otherdomainA.im.tv, otherdomainB.im.tv, otherdomainC.im.tv 都轉導為otherdomain.im.tv(flash吃轉導(304)的content)

top

Trackback Address :: http://diary.tw/allenliao/trackback/516

Write a comment


PREV : [1] : ... [19] : [20] : [21] : [22] : [23] : [24] : [25] : [26] : [27] : ... [80] : NEXT