2012-10-19 57 views
0

我正試圖在Android上的phonegap上開發應用程序。如何使用PhoneGap調用webservice

我想要做的是從我的應用程序調用webservice,這將用於數據訪問。

我發現許多張網上如何做到這一點,最簡單的一個,我可以發現,似乎直截了當是這樣

<script type="text/javascript"> 
$(document).ready(function() { 
    $.ajax({ 
type: "POST", 
url: "http://www.webservicex.net/stockquote.asmx/GetQuote", 
data: "{'usd'}", 
contentType: "application/json; charset=utf-8", 
dataType: "json", 
success: function(msg) { 

    // Insert the returned HTML into the <div>. 
    $('#Content').html(msg.d); 
} 
}); 
}); 

然而,我所看到的是文字我已經放入div中,div內容不會改變。我直接在Galaxy SIII設備上進行測試,而不是在模擬器上進行測試。

回答

1

我的猜測是,似乎沒有什麼事情發生,因爲你得到的是fail,而不是success。嘗試添加錯誤處理程序並查看會發生什麼。

.fail(function() { alert("error"); }) 

你很可能有「跨域」的問題(因爲你正試圖從不同的域得到阿賈克斯),並可能需要使用的JSONP代替JSON您的數據類型。有關JSONP更多信息,請參閱this postthe docs

編輯:

這段代碼的Here is a fiddle在行動。

$(document).ready(function() { 

//here is one way using the 'error' handler 
    $.ajax({ 
     type: "POST", 
     url: "/failOnPurpose", 
     data: "{'usd'}", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     error:function(jqXHR, textStatus) { 
      alert("error:" + textStatus); 
     }, 
     success: function(msg) {   
      // Insert the returned HTML into the <div>. 
      $('#Content').html(msg.d); 
     }  
    }); 

//here is another way using the 'fail' request handler 
    $.ajax({ 
     type: "POST", 
     url: "/failOnPurpose", 
     data: "{'usd'}", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json",    
     success: function(msg) {   
      // Insert the returned HTML into the <div>. 
      $('#Content').html(msg.d); 
     }  
    }).fail(function(jqXHR, textStatus) { 
       alert("fail: " + textStatus); 
    }); 

});​ 
+0

作爲我的新手,我不知道該放置這個功能的位置,請問您能指引我在正確的方向嗎?我看到一個成功:標籤,它是在它之後來的嗎? – KamalSalem

+0

我已經添加了兩個例子 – davehale23