Domanda

Sto cercando di inviare una XHR usando PhoneGap sul BlackBerry.Attualmente quando faccio la richiesta fallisce in silenzio.Ho provato a utilizzare JQuery jQuery.getJSON(url , callback),

Un oggetto XHR

var xmlhttp = new XMLHttpRequest();

//callback function when XMLHttpRequest is ready
xmlhttp.onreadystatechange=function(){
    if(xmlhttp.readyState==4){
        if(xmlhttpForTGT.status==200){

            response = xmlhttpForTGT.getResponseText()
        }
        else{
            alert("Request Failed")
        }
    } 
}

xmlhttp.open("GET", url , true)
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
xmlhttp.send()
.

e XUI

x$('#home').xhr(url, 
    {method: 'get',
    callback: function(){ alert('made request') }});
.

E finora non riesco a far funzionare nessuno di loro.Qualcun altro è stato in grado di ottenere XHR a lavorare?Sto usando jre4.6.1 e usando Eclipse per l'ambiente di sviluppo.Non vengono lanciati errori quando tento di effettuare le richieste, qualsiasi consiglio ??

È stato utile?

Soluzione

Ho contribuito molto al progetto PhoneGap-BlackBerry, e in tutti i miei test, per qualche motivo l'oggetto XMLHTTTREQUEST solleva sempre un'eccezione vuota quando si chiama la funzione Open () su di esso. Non sono sicuro del perché - Phonegap-Blackberry nella sua forma attuale sfrutta il browser proprietario, non-Webkit di RIM, quindi forse ha qualcosa a che fare con esso.

Quello che ho fatto però è implementare un approccio basato su base, nativo, Java per creare richieste HTTP e recuperare la risposta. Si è riunito in JavaScript nella tua app PhoneGap come parte dell'API per telefoni cellulari "Network". Alcune informazioni su questo sono qui: http://wiki.phonegap.com/Known-issues - (BlackBerry)

Nota: questa è sicuramente una misura di stopGap. L'implementazione è ruvida e potrebbe sicuramente usare un po 'di lavoro. Attualmente funziona solo con gli endpoint API che restituiscono JSON.

Esempio di utilizzo:

navigator.network.XHR('http://www.mysite.com/myapi',
    'This is my POST data, or I could pass in "null" for empty POST data',
    function(response) {
        // This is my success callback.
        // Do something with the JSON response object here.
    });
.

Spero che ti aiuti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top