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>
<?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); }
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");
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");
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);
posted on 2011-06-29 13:40
长春语林科技 阅读(1452)
评论(0) 编辑 收藏 所属分类:
flex