截获了crossdomain.xml但仍然违规

时间:2013-09-30 09:55:48

标签: flash socket.io

在闪光灯中我放了:

Security.allowDomain("*");
socket = new FlashSocket("http://engine.WEBSITE1.com:8002");

当我在线运行flash文件时,它会自动通过端口8002向我的node.js应用程序询问 /crossdomain.xml ,所以我在socket.io连接之前添加了这段代码:

app.get('/*',function(req,res,next){
 if(req.method==='GET'&&req.headers.referer.indexOf('http://WEBSITE0.com/')===0&&req.url==='/crossdomain.xml'){
    console.log('/crossdomain.xml');
    flash=true;
    var body='<cross-domain-policy><allow-access-from domain="WEBSITE0.com" to-ports="8002"/></cross-domain-policy>';
    console.log(body);
    res.writeHead({'Content-Type':'text/x-cross-domain-policy'});
    res.write(body);
    res.end();
    }
  else if(req.method==='GET'){console.log('???');console.dir(req);}
  });

enter image description here

我看到我获得了跨域策略,但仍然因安全沙箱违规而被拒绝。 实际上违规行为不是我所期望的,因为Flash要求跨域策略然后拒绝从那里加载数据,即使我在两个网站上都有相同的(appart来自网站名称)crossdomain.xml

<cross-domain-policy><allow-access-from domain="WEBSITENAME" to-ports="*"/></cross-domain-policy>

enter image description here

然后我的swf文件无法接收FlashSocketEvent.CONNECT事件;在我的node.js应用程序中我把它:

io.sockets.on('connection',function(socket){
  if(flash===true){console.log('flash');}

我确实看到控制台说“flash”!只是adobe对我说不...有什么想法吗?

0 个答案:

没有答案