今天,更确切的说是昨天,现在已经是凌晨2:22分了。调试程序的时候遇到一个HttpService代理的问题,怎么调试都说是代理有错误。后来上网搜了一下才看到相关的资料,在FLEX里用HTTPService等都是需要Proxy的,这和原来用flash的时候大不一样。
以下的内容转载自http://www.cnblogs.com/dannyr/
首先注意的是在HTTPService tag里有一个属性useProxy,属性值为true/false,默认属性为true。
这不同于flash里的loadVars或XML。
在WEB-INF/flex的flex-config.xml里第317行有这么一句注释:
For security, the whitelist is locked down by default.
Uncomment the first two urls below to enable access to all URLs
or add above the individual URLs you wish to access.
也就是说出于安全的考虑flex里的白名单(whitelist)是需要使用这自己修改的,unnamed list默认只有本地的http://{localserver}/*和https://{localserver}/*可以访问。其他的需要在flex-config.xml里的自行修改。
比如我们要访问80s的rss2.asp文档,我们就可以在后面加上
<url>http://www.80s.net.cn/*</url>
这和flash里的跨域访问不太一样,在flash中如果要跨域访问就需要在别人的website根下放置crossdomain.xml,或者用web脚本做代理,具体方法参考:
http://www.80s.net.cn/blog/comment.asp?Id=7
在flash里用loadVars.sendAndload("*.jsp","POST");,这样一旦有人反编译了导出的swf,这样就有可能向服务器端发送垃圾数据,但在flex里我们可以在named list里给service取名,这样就以为着更安全,就算别人反编译了导出的swf也只能看到serviceName,而不知道具体的地址。
如果你不需要这些功能,MM也给了解决的方法,就是把useProxy的值给false。