★解决HTTPService的url属性里通过GET方法来发送数据时不能直接使用变量分隔符

      Flex和AIR 2007-9-29 17:12

      原标题有点那个了^_^, 原标题是:  ★同时使用HTTPService的GET和POST方法来发送数据. 我们知道, 用HTTPService控件时, 定义了method 属性为POST时, 就不能再定义为GET的, 那么怎样才能实现: 同时使用HTTPService的GET和POST方法来发送数据呢? 其实本文的内容, 也就是关于: 解决HTTPService的url属性里通过GET方法来发送数据时不能直接使用变量分隔符"&"罢了.

      今天, 在做 Flex 时, 需要使用到 HTTPService 控件. 后台是PHP文件, 不是我写的, 我只负责在flex里把数据用POST方法发送给 "index.php" 文件. 这个index.php文件留有接口, 通过这种方法来调用: index.php?user=YoungBoy&action=save . 通过这种方式, 我可以告诉php文件需要执行什么样的动作, 例如: 保存数据(action=save). 这是通过GET方法发送给php文件的, 在一般的Html页里面, 可以直接在地址栏上的url加上形如 "?user=YoungBoy&action=save" 这些字符串就行了. 但, 今天在Flex里使用HTTPService时, 打算把 " index.php?user=YoungBoy&action=save " 直接赋值给 url 属性. 保存后, 发觉提示这样的错误: "The reference to entity "action" must end with the ' ; ' delimiter." 开始弄不懂, 第一时间想到的是那个变量分隔符"&".  我在猜想, 那个会不会是特殊字符呢?! 在这里不能直接使用, 会不会要用斜杠符号" \ "把它转义过来. 经测试后, 发觉也不是这样.

      经过自己的摸索, 才醒悟起来, 在Flex里, mxml的本质是xml, 对某些特殊字符是敏感的, 像 " < " 要用 " &lt; " 来代替, 所以我在想, 那个变量分隔符 " & " 会不会也要用 " &amp; " 来代替呢? 最后发觉答案是肯定的. 所以上面那句 " index.php?user=YoungBoy&action=save " 要改为: " index.php?user=YoungBoy&amp;action=save " 才对.

      就这样, 在HTTPService控件里, 把method属性赋值为 " POST "就可以实现了通过POST方法来发送数据, 想同时使用GET方法来发送数据的话, 就得通过 url 这家伙了, 别忘了把变量分隔符 " & " 改为 " &amp; " !


标签集:TAGS:Flex AS3 HTTPService
回复Comments() 点击Count()

回复Comments

{commentauthor}
{commentauthor}
{commenttime}
{commentnum}
{commentcontent}
作者:
{commentrecontent}