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 ブラウザーを利用しているため、おそらくそれが関係していると思われます。

私が行ったことは、HTTP 要求を作成して応答を取得するための非常に基本的なネイティブな Java ベースのアプローチを実装することです。「ネットワーク」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 に答える