与Restful webservice的Phonegap

时间:2012-02-20 03:50:52

标签: jquery html5 rest cordova

我是phonegap和restful webservice的新手。我的问题是我如何融合他们两个,以便我有一个应用程序,将与宁静的Web服务同步。我已尝试使用jsonp的示例restful服务,但phonegap不加载服务或者我可能错过了一些东西。谢谢。

3 个答案:

答案 0 :(得分:3)

以下代码可帮助您了解如何调用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>

答案 1 :(得分:1)

它的工作原理与普通的Web项目相同(使用JSON):

$.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而不处理JSON。

答案 2 :(得分:1)

我稍微改变了你的ajax调用。我们需要发布请求。 jquery.js也应该是第一个。尝试调用设备就绪功能。

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