【问题标题】:URL encode variable in AS3?AS3 中的 URL 编码变量?
【发布时间】:2011-03-30 02:02:31
【问题描述】:

尝试通过URLRequestMethod.POST; 传递变量时出现以下错误

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

有字符串URL编码的方法吗?

【问题讨论】:

    标签: flash actionscript-3 urlencode


    【解决方案1】:

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

    【讨论】:

    • 如果您想对分隔符进行编码,encodeURIComponentdecodeURIComponent 也很有用。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      该错误消息通常是由将无效的查询字符串传递给 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());
      

      当然,跟踪不是必需的,它只是为了让您可以看到编码工作。

      【讨论】:

      • 这有助于解决我遇到的另一个问题。谢谢。
      【解决方案4】:

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

      request.method = URLRequestMethod.POST
      

      最后确保您通过变量theStatus=okay 收到响应,那么这应该可以解决问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-09-22
        • 1970-01-01
        • 1970-01-01
        • 2015-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多