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
長春語林科技 閱讀(1457)
評論(0) 編輯 收藏 所屬分類:
flex