3

我正在尝试在黑莓上使用 phonegap 提交 xhr。目前,当我提出请求时,它会默默地失败。我试过使用 jQuery jQuery.getJSON(url , callback)

一个 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()

, 和徐

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

到目前为止,我无法让他们中的任何一个工作。有没有其他人能够让 xhr 工作?我正在使用 JRE4.6.1 & 使用 eclipse 作为开发环境。当我尝试提出请求时没有抛出错误,有什么建议吗?

4

1 回答 1

2

我为 phonegap-blackberry 项目做出了很多贡献,在我的所有测试中,由于某种原因,当您在其上调用 open() 函数时,XmlHttpRequest 对象总是引发一个空异常。我不确定为什么——目前形式的 phonegap-blackberry 利用了 RIM 专有的非 WebKit 浏览器,所以也许这与它有关。

我所做的是实现一个非常基本的、原生的、基于 Java 的方法来发出 HTTP 请求和检索响应。作为“网络”PhoneGap API 的一部分,它被桥接回您的 PhoneGap 应用程序中的 JavaScript。有关这方面的一些信息在这里:http://wiki.phonegap.com/Known-issues-(BlackBerry)

注意:这绝对是权宜之计。实现很粗糙,肯定需要做一些工作。目前,它仅适用于返回 JSON 的 API 端点。

示例用法:

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

希望有帮助。

于 2010-07-21T19:47:08.650 回答