【发布时间】:2011-03-30 02:02:31
【问题描述】:
尝试通过URLRequestMethod.POST; 传递变量时出现以下错误
错误:错误 #2101:传递给 URLVariables.decode() 的字符串必须是包含名称/值对的 URL 编码查询字符串。
有字符串URL编码的方法吗?
【问题讨论】:
标签: flash actionscript-3 urlencode
尝试通过URLRequestMethod.POST; 传递变量时出现以下错误
错误:错误 #2101:传递给 URLVariables.decode() 的字符串必须是包含名称/值对的 URL 编码查询字符串。
有字符串URL编码的方法吗?
【问题讨论】:
标签: flash actionscript-3 urlencode
作为用于 URL 编码/解码的 ActionScript 3 的顶级函数有 escape() 和 unescape()。
【讨论】:
encodeURIComponent 和 decodeURIComponent 也很有用。
解决这个问题的方法是:
您必须将 URLLoaderDataFormat 设置为 URLLoaderDataFormat.TEXT 而不是 URLLoaderDataFormat.VARIABLES.
因为VARIABLES表示不同类型的数据,而不是URLVariables中的多个项目。
【讨论】:
该错误消息通常是由将无效的查询字符串传递给 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());
当然,跟踪不是必需的,它只是为了让您可以看到编码工作。
【讨论】:
我多次遇到这个问题,通常是我错过的myLoader.dataFormat = URLLoaderDataFormat.VARIABLES 行。如果有,请尝试删除此行:
request.method = URLRequestMethod.POST
最后确保您通过变量theStatus=okay 收到响应,那么这应该可以解决问题。
【讨论】: