java与flash之间调用及跨域问题的一种解决方式
2008-12-26 at 10:07 am zhanhui.wangzhh在开放中经常会遇到与flash互相调用的情况,一下提供一种解决方式
一、Action部分
import java.io.IOException;
import java.io.OutputStream;
import com.alisoft.aep.commons.framework.action.BaseAction;
public class TestAction extends BaseAction{
public String doTest(){
return output(”helloWord”);
}
//直接使用response的返回流将需要的数据写回
private String output(String str) {
OutputStream os = null;
try {
os = this.getServletResponse().getOutputStream();
os.write(str == null ? new byte[]{-1} :str.getBytes(”UTF-8″));
} catch (IOException e) {
e.printStackTrace();
return “error”;
}finally{
try {
if(os != null){
os.close();
}
} catch (IOException e) {
e.printStackTrace();
return “error”;
}
}
return “none”;
}
}
二、服务器端配置
在我们现在的开发环境中可以在deploy\htdocs下增加crossdomain.xml
<?xml version=”1.0″?>
<cross-domain-policy>
<allow-access-from domain=”*” />
</cross-domain-policy>
allow-access-from 的domain属性的配置可以是ip或是域名
三、页面相关代码
在页面相关的配置的位置请务设置为‘allowScriptAccess’,'always’ 否则无法生效
AC_FL_RunContent(
‘codebase’, ‘http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0′,
‘width’, ‘763′,
‘height’, ‘600′,
’src’, ‘http://www.alisoft.com/test’,
‘quality’, ‘high’,
‘pluginspage’, ‘http://www.macromedia.com/go/getflashplayer’,
‘align’, ‘middle’,
‘play’, ‘true’,
‘loop’, ‘true’,
’scale’, ’showall’,
‘wmode’, ‘window’,
‘devicefont’, ‘false’,
‘id’, ‘test’,
‘bgcolor’, ‘#ffffff’,
‘name’, ‘test’,
‘menu’, ‘true’,
‘allowFullScreen’, ‘false’,
‘allowScriptAccess’,'always’,
‘movie’, ‘http://www.alisoft.com/test’,
’salign’, ”
);
Leave a Reply
You must be logged in to post a comment.