Flex项目中遇到的几个问题

1.flex调用远程Java服务报错:Security error accessing url
解决方案:跨域的问题
增加一个crossdomain.xml
<?xml version="1.0"?>
<cross-domain-policy>
<!-- domain="*" everyone access -->
<allow-access-from domain="*" />
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

放到tomcat\webapps\ROOT下
2.flex string类型转到数值型
1 使用parseInt() 函数从一个string到integer
2 使用parseFloat() 函数从一个string到Number
3 使用Number构造器
3.httpservice重复调用同一个连接,缓冲的问题
在httpservice的参数里加上一个随机生成的参数,服务器端不进行处理,纯粹就是为了欺骗浏览器让它以为不是同一个url。
4.flex随机函数
Math.Random()返回一个随机数n, 0 <= n < 1
5.flex进行编码,java进行解码
var s = httpEncoding("老天自有安排");
//进行文字编码
private function httpEncoding(param:String):String
{
	return encodeURIComponent(param);
} 

java接收结果是:%C0%CF%CC%EC%D7%D4%D3%D0%B0%B2%C5 %C5
parameter = java.net.URLDecoder.decode(parameter , "UTF-8");

由于FLEX对中文的支持不是很友好,所以在前台 向 后台 传递数据的时候采取的是 UTF-8 的编码
所以当遇到中文的时候 请使用
encodeURI(uri:String):String
encodeURIComponent(uri:String):String
escape(str:String):String
这三个方法中任意一个
然后在 JAVA 里面 使用
URLDecoder.decode(String s,String enc) 1.表示要解码的字符串 2.表示解码成什么格式
用HTTPService或URLRequest与JAVA后台通信的时候可能会遇到乱码问题,因为
Flex默认编码是UTF-8,而服务器端可能使用的是GB2312编码,解决这个问题未必
要在Flex上下功夫,可以在服务器端使用
    
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");

上面的是设置服务器当前页面以utf-8接收信息,下面的是用utf-8格式发送信息。
其他语言的服务器也是这个道理。
6.
var o: Object = {para1:"Hello",para2:"This is a Para"};
httpService.send(o);

你可能感兴趣的:(java,tomcat,xml,浏览器,Flex)