Nasıl bir Adobe AIR uygulaması JavaScript aracılığıyla bir URL'ye XML verilerini POST mı?

1 Cevap php

Ben bir URL'den XML dizesi indirir bir uygulama yazıyorum ve POST s başka bir URL'ye (yani gelen bir "XML" alanını işlemek için kurulmuş oluyor) olduğunu ediyorum. Ben ilk bölümü hakkı var - bu XML indirir ve ben alert() onu ve tüm bu can, ama nasıl bir sunucuya POST veri anlamaya alamıyorum .

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);
    }
}

Ben 2. sunucu PHP xml değişkeni echo içerikleri yapılmış, ama XML dize tam içeriğini almak için sadece açamıyorum. Ben myRequest.data ve / veya dataFormat ile biraz ovuşturun yapıyorum bir şey var.

Birisi sadece bu anlamaya miyim? Ben muhtemelen basit bir şey biliyorum, ama ben şu anda benim zekâ sonunda değilim.

Bu benim ilk AIR uygulaması.

Başka ilgili bir soru (veya alt-soru) olduğunu ...

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.

Neden?

1 Cevap

Hata 'veri' olarak parametrelerini atama ... Kullanım URLVariables yolu gibi görünüyor.

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

--- Şöyle params.xml = (SİZİN XML) ... senin örnek:

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

Sonra = params request.data için request.data değiştirin;

- URLVariables adam dinamik - Ben yukarıda tarif gibi özellikler ekleyebilirsiniz böylece.

Temel Örneğin - çok daha eksiksiz burada ne var: http://livedocs.adobe.com/flex/3/html/help.html?content=data_access_2.html