2010-07-20 12 views
3

J'essaie de soumettre un xhr en utilisant phonegap sur la mûre. Actuellement, lorsque je fais la demande, il échoue silencieusement. Je l'ai essayé d'utiliser jQuery jQuery.getJSON(url , callback),xhr avec phonegap sur le blackberry

un objet 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() 

et xui

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

et jusqu'à présent, je ne peux obtenir aucun d'entre eux de travailler. Est-ce que quelqu'un d'autre a réussi à faire fonctionner xhr's? J'utilise JRE4.6.1 & en utilisant eclipse pour l'environnement de développement. Aucune erreur n'est levée quand je tente de faire les demandes, aucun conseil?

+0

Vous savez, j'ai les mêmes problèmes! – Olaseni

Répondre

2

J'ai beaucoup contribué au projet phonegap-blackberry, et dans tous mes tests, pour une raison quelconque, l'objet XmlHttpRequest soulève toujours une exception vide lorsque vous appelez la fonction open(). Je ne sais pas pourquoi - phonegap-blackberry dans sa forme actuelle exploite le navigateur propriétaire de non-WebKit de RIM, alors peut-être que cela a quelque chose à voir avec cela. Mais ce que j'ai fait, c'est d'implémenter une approche très basique et native basée sur Java pour faire des requêtes HTTP et récupérer la réponse. Il est redirigé vers JavaScript dans votre application PhoneGap dans le cadre de l'API PhoneGap 'network'. Quelques informations à ce sujet sont ici: http://wiki.phonegap.com/Known-issues-(BlackBerry)

NOTE: ceci est certainement une mesure de stopgap. La mise en œuvre est rude et pourrait certainement utiliser un peu de travail. Actuellement, il ne fonctionne qu'avec les points de terminaison API qui retournent JSON.

Exemple d'utilisation:

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

espoir qui aide.

+0

Oui cela aide certainement, merci. J'avais vu les problèmes de blackberry, mais je n'étais pas sûr des détails. Avec cette implémentation, est-il possible de définir des en-têtes de requête? –

+0

Les en-têtes sont définis à l'extrémité native en Java, voir http://github.com/phonegap/phonegap-blackberry/blob/master/framework/src/com/nitobi/phonegap/api/impl/NetworkCommand.java# L200 Pour une solution rapide, vous devriez être en mesure de les définir en Java pour vos besoins, ou, n'hésitez pas à étendre cela afin que vous puissiez le configurer via JavaScript. Si c'est le cas, assurez-vous de m'envoyer une demande de tirage sur github (github.com/filmaj) et je serai sûr de l'inclure dans le master! Je veux vraiment abandonner cette implémentation et écrire l'API XHR complète correctement. Laissez-moi savoir ce que vous en pensez, peut-être que nous pouvons combiner nos efforts. –