2012-02-20 8 views
1

私はphonegapと安らかなwebserviceに新しいです。私の質問は、どのように私は両方のヒューズ、私は安らかなwebserviceと同期するアプリケーションを持っていることです。私はjsonpでサンプルの安らかなサービスを試しましたが、phonegapはサービスをロードしていないか、何かが足りなくなっています。ありがとうございました。安心してwebserviceを使用して電話帳

答えて

3

あなたはそれが(JSONを使用して)通常のWebプロジェクトと同じようにどのように動作するか、結果を表示するには、Webサービスを呼び出すと、それを解析する

<html> 
<head> 
<script src="js/jquery-1.4.2.js" type="text/javascript" charset="utf-8"></script> 
<script src="js/jquery-1.4.2.min.js" type="text/javascript"></script> 
<script> 
function bodyload(){ 
    alert("We are calling jquery's ajax function and on success callback xml parsing are done"); 
$.ajax({ 
    url:'http://www.edumobile.org/blog/uploads/XML-parsing-data/Data.xml', 
    dataType:'application/xml', 
    timeout:10000, 
    type:'POST', 
    success:function(data) { 
     $("#bookInFo").html(""); 
     $("#bookInFo").append("<hr>"); 
     $(data).find("Book").each(function() { 
       $("#bookInFo").append("<br> Name: " + $(this).find("name").text()); 
       $("#bookInFo").append("<br> Address: " + $(this).find("address").text()); 
       $("#bookInFo").append("<br> Country: " + $(this).find("country").text()); 
       $("#bookInFo").append("<br><hr>"); 
     }); 
    }, 
    error:function(XMLHttpRequest,textStatus, errorThrown) {  
     alert("Error status :"+textStatus); 
     alert("Error type :"+errorThrown); 
     alert("Error message :"+XMLHttpRequest.responseXML); 
     $("#bookInFo").append(XMLHttpRequest.responseXML); 
    } 
    }); 
} 
</script> 
</head> 
<body onload="bodyload()"> 
<button onclick="bodyload()">Ajax call</button> 
<p id="bookInFo"></p> 
</body> 
</html> 
+0

ありがとうございます。私はすでにそのようなことをしましたが、問題は、私がアンドロイドエミュレータでphonegapを実行するとデータを取得しないことです(私は警告が表示されていることを示していますが、警告イベントは起動しません)。 – jongbanaag

+0

これを逃している可能性がありますhttp://stackoverflow.com/a/9359170/28557 –

+0

私はすでにそれがまだ動作していない私の驚きに考え出した。それはローカルで働くことに問題がありますか?なぜなら私はエミュレータと残りのサービスをローカルで実行しているからです。 – jongbanaag

1

理解し、以下のコードのヘルプ:

$.ajax({ 
url: 'http://...', 
type: 'POST', 
dataType: 'json', 
data: data, 
success: : function(data) { 
//... 
}, 
error: function(xhr, textStatus, errorThrown) { 
//... 
}, 
beforeSend: function (xhr) { 
xhr.setRequestHeader('Content-Type', 'application/json'); 
xhr.setRequestHeader('Accept', 'application/json'); 
} 
}); 

PhoneGapの唯一の違いは、発信元ポリシーの問題と同じことを心配する必要がないことです。そのため、JSONPの使用は本当に必要ありません。 JSONPではなくJSONPのみを処理するサーバーで作業している場合を除きます。

1

あなたのajax呼び出しをこのように少し変更しました。リクエストを掲載する必要があります。また、jquery.jsが最初である必要があります。デバイスレディ機能も呼び出してみてください。

$.ajax({ 
    url:'http://www.edumobile.org/blog/uploads/XML-parsing-data/Data.xml', 
    dataType:'xml', 
    type:'get', 
    cache: false, 
関連する問題