0

我的 AS3 代码:

loginBtn.addEventListener("mouseDown", sendData)
function sendData(e:Event) {
    var path:String = "http://server1.digitalmulia.com/~testing/webservice/auth/login";
    var myData:URLRequest = new URLRequest(path)
    myData.method = URLRequestMethod.POST
    var variables:URLVariables = new URLVariables()
    variables.username = usernameField.text
    variables.password = passwdField.text
    myData.data = variables
    var loader:URLLoader = new URLLoader()
    loader.dataFormat = URLLoaderDataFormat.VARIABLES
    loader.addEventListener(Event.COMPLETE, dataOnLoad)
    loader.load(myData)
}
function dataOnLoad(e:Event){
    var xmldata = XML(e.target.data);
    var xxx = xmldata.toString();
    var myFormat:TextFormat = new TextFormat();
    myFormat.font = "Arial";
    myFormat.size = 12;
    myFormat.bold = true;

    var myText:TextField = new TextField();
    myText.defaultTextFormat = myFormat;
    myText.selectable = true;
    myText.border = true;
    myText.text = xxx;
    myText.x = 10;
    myText.y = 200;
    myText.width = 300;
    myText.height = 100;
    addChild(myText);

}
stop()

结果:

%3C%3Fxml%20version=%221%2E0%22%3F%3E%0A%3Cxml%3E%3Cdatas%2F%3E%3C信息%3E%3Cpasswd%3E5f4dcc3b5aa765d61d8327deb882cf99%3C%2Fpasswd%3E%3C%2F信息%3E% 3Cerror%3E%3Citem%3EUsername%20not%20found%20or%20password%20is%20wrong%3C%2Fitem%3E%3C%2Ferror%3E%3C%2Fxml%3E%0A

怎么了?我需要的结果与

<xml>
    <datas/>
    <information>
        <passwd>5f4dcc3b5aa765d61d8327deb882cf99</passwd>
    </information>
    <error>
        <item>Username is null</item>
        <item>Password is null</item>
    </error>
</xml>

我很抱歉我的英语不好。

4

2 回答 2

1

您可以尝试使用, unescape(xmldata.toString())然后您将获得所需的输出。

        function dataOnLoad(e:Event)
        {
            var xmldata:XML = XML(e.target.data);
            var xmlStr:String = unescape(xmldata.toString());
            xmldata = XML(xmlStr);          
        }

函数 escape("args") 将参数转换为字符串并以 URL 编码格式对其进行编码。

escape("escape unescape");

输出:escape%20unescape

函数 unescape 将所有十六进制序列转换为 ASCII 字符。例如,

unescape("escape%20unescape");

输出 :escape unescape

于 2012-12-27T09:01:04.320 回答
0

我确定这是因为您选择了URLLoaderDataFormat.VARIABLES类型,请尝试其他值,例如URLLoaderDataFormat.TEXT在将其传递给 XML 构造函数时使用 try catch 块包装它,因为无效数据会引发错误。

于 2012-12-28T09:09:33.193 回答