Pergunta

Estou tentando enviar um xhr usando phonegap no blackberry.Atualmente, quando faço a solicitação, ela falha silenciosamente.Eu tentei usar jQuery jQuery.getJSON(url , callback),

um objeto 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 até agora não consigo fazer nenhum deles funcionar.Alguém mais conseguiu fazer o xhr funcionar?Estou usando JRE4.6.1 e Eclipse para o ambiente de desenvolvimento.Nenhum erro é gerado quando tento fazer as solicitações, algum conselho?

Foi útil?

Solução

Contribuí muito para o projeto phonegap-blackberry e, em todos os meus testes, por algum motivo, o objeto XmlHttpRequest sempre gera uma exceção vazia quando você chama a função open() nele.Não sei por que - o phonegap-blackberry em sua forma atual aproveita o navegador proprietário e não WebKit da RIM, então talvez isso tenha algo a ver com isso.

O que fiz foi implementar uma abordagem muito básica, nativa e baseada em Java para fazer solicitações HTTP e recuperar a resposta.Ele é conectado novamente ao JavaScript em seu aplicativo PhoneGap como parte da API PhoneGap de 'rede'.Algumas informações sobre isso estão aqui: http://wiki.phonegap.com/Known-issues-(BlackBerry)

OBSERVAÇÃO:esta é definitivamente uma medida provisória.A implementação é difícil e definitivamente precisa de algum trabalho.Atualmente, funciona apenas com endpoints de API que retornam JSON.

Exemplo de uso:

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

Espero que ajude.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top