2008-09-15 107 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