Как разместить XML-данные в URL-адресе с помощью JavaScript в приложении Adobe AIR? - PullRequest
1 голос
/ 31 мая 2009

Я пишу приложение, которое загружает строку XML из URL-адреса и POST s - по другому URL-адресу (настроено для обработки входящего поля "XML") У меня первая часть права - она ​​загружает XML, и я могу alert() это и все такое, но я не могу понять, как POST эти данные на сервер.

function pull() {
    var myLoader = new air.URLLoader();
    var myRequest = new air.URLRequest('http://something/something.xml');
    myLoader.addEventListener(air.Event.COMPLETE, pulled);
    myLoader.load(myRequest);
}

function pulled(evt) {
    if (evt.target.bytesTotal>0) {
        // alerting shows the full string just fine
        alert(evt.target.data);

        var myLoader = new air.URLLoader();
        var myRequest = new air.URLRequest('http://someplace/push.php');
        myRequest.method = air.URLRequestMethod.POST;
        // myVars = new air.URLVariables("xml="+evt.target.data); // 
        // alert(evt.target.data.toUpperCase());
        myRequest.data = "xml="+evt.target.data; // myVars;
        myLoader.dataFormat = air.URLLoaderDataFormat.TEXT;
        myLoader.addEventListener(air.Event.COMPLETE, pushed);
        myLoader.load(myRequest);
    }
}

Я сделал второй сервер PHP echo содержимым переменной xml, но я просто не могу получить точное содержимое строки XML. Есть кое-что, что я делаю с помощью myRequest.data и / или dataFormat бита.

Может кто-то просто понять это? Я знаю, что это, вероятно, простая вещь, но я сейчас нахожусь в тупике.

Это мое первое приложение AIR.

Другой связанный вопрос (или подвопрос) заключается в том, что ...

alert(evt.target.data);               // shows an alert box with the XML
alert(typeof evt.target.data);        // shows String
alert(evt.target.data.toUpperCase()); // shows the xml converted to upper case
alert(encodeURI(evt.target.data));    // shows up blank.
alert(escape(evt.target.data));       // shows up blank.

Почему ??

1 Ответ

1 голос
/ 31 мая 2009

Ошибка, по-видимому, заключается в том, что вы назначаете параметры для «данных» ... Используйте URLVariables.

var params:URLVariables = new URLVariables();
params.[name of parameter] = [value];

--- так как params.xml = (ВАШ XML) ... из вашего примера:

// uses the dynamic object to add the 'xml' property to 'params' at runtime.
params.xml = evt.target.data

Затем измените ваш request.data на request.data = params;

- Парень URLVariables является динамическим, поэтому вы можете добавлять свойства, как я описал выше.

Для базового примера - гораздо более полного, чем то, что у меня здесь: http://livedocs.adobe.com/flex/3/html/help.html?content=data_access_2.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...