2008-09-15 74 views
4

我加載從Servlet一些XML從我的Flex應用程序是這樣的:如何防止Flash的URLRequest轉義url?

_loader = new URLLoader(); 
_loader.load(new URLRequest(_servletURL+"?do=load&id="+_id)); 

你可以想像_servletURL是一樣的東西http://foo.bar/path/to/servlet

在某些情況下,該URL中包含重音字符(長的故事)。我將unescaped字符串傳遞給URLRequest,但似乎閃存會轉義它並調用無效的轉義URL。想法?

回答

4

我不知道這是否會有所不同,但是這是實現相同的URLRequest的更清潔的方式:

var request:URLRequest = new URLRequest(_servletURL) 
request.method = URLRequestMethod.GET; 
var reqData:Object = new Object(); 

reqData.do = "load"; 
reqData.id = _id; 
request.data = reqData; 

_loader = new URLLoader(request); 
+0

感謝,但同時更漂亮,它並沒有區別 – 2008-09-25 07:30:03

0

從LiveDocs中:http://livedocs.adobe.com/flex/3/langref/flash/net/URLRequest.html

創建URLRequest對象。如果System.useCodePage爲true,則使用系統代碼頁而不是Unicode對請求進行編碼。如果System.useCodePage爲false,則請求將使用Unicode編碼,而不是系統代碼頁。

這個頁面有詳細信息:http://livedocs.adobe.com/flex/3/html/help.html?content=18_Client_System_Environment_3.html

但基本上你只需要把它添加到要爲URLRequest之前運行的功能(我可能會把它放進一個creationComplete事件)

System.useCodePage = false;

+0

謝謝,但來自同一個頁面,它說useCodePage的默認爲false。無論如何,我會試驗 – 2008-09-15 14:31:23