AS3中的URL编码变量?

时间:2010-08-15 13:07:36

标签: flash actionscript-3 urlencode

尝试通过URLRequestMethod.POST;

传递变量时出现以下错误
  

错误:错误#2101:传递给URLVariables.decode()的String必须是包含名称/值对的URL编码查询字符串。

是否有字符串URL编码的方法?

4 个答案:

答案 0 :(得分:21)

有escape()和unescape()作为ActionScript 3的顶级函数,用于URL编码/解码。

答案 1 :(得分:7)

此问题的解决方案是: 您必须将URLLoaderDataFormat设置为URLLoaderDataFormat.TEXT而不是URLLoaderDataFormat.VARIABLES. 因为VARIABLES表示不同类型的数据,而不是URLVariables中的多个项目。

答案 2 :(得分:6)

该错误消息通常是由将无效的查询字符串传递给URLVariables对象引起的。但是在大多数情况下你不需要传递查询字符串。您可以将对象作为常规属性添加到对象中,并让它执行编码和转义(这是此类的目的)。

var vars:URLVariables = new URLVariables();
vars.param1 = "Text to be escaped. Works for non ascii: ñ";
vars.param2 = "http://www.google.com/?q=something&test=1234";
trace(vars.toString());

当然,跟踪不是必需的,只是让您可以看到编码有效。

答案 3 :(得分:0)

我多次遇到这个问题,通常是我错过的myLoader.dataFormat = URLLoaderDataFormat.VARIABLES行。如果你拥有它,请尝试删除此行:

request.method = URLRequestMethod.POST

最后确保通过变量theStatus=okay收到响应,然后应该这样做。