我一直在努力爭取整天的這個問題,並在各地搜索。這可能是因爲我無法找到的解決方案是一個網頁...但我已經看了,如問題和解決方案:PhoneGap不發佈AJAX(jsonp)請求
Ajax call on phonegap not sending request
JQuery mobile + Phonegap : Ajax calls not working on Android Emulator
既不存在的解決方案似乎解決了我的問題。
我想要做的就是向我的遠程服務器發出一個AJAX調用,上傳幾個參數並下載一些內容。該腳本在瀏覽器中完美工作,但根據Phonegap中文件的輕微更改,可能會拋出「超時」錯誤,或者只是簡單地說「錯誤」。代碼如下(AJAX的端點是一個開發終點,我會離開它,所以你可以嘗試打它):
<html>
<head>
<script type="text/javascript" charset="utf-8" src="jquery-1.10.2.min.js"></script>
</head>
<body>
<ul>
<div id="app-status-ul">
<li>Loaded</li>
</div>
</ul>
</body>
<script>
var serverRegHit = function(data, httpStat){
$("#app-status-ul").append('<li>Server Reg OK, HTTP status: '+httpStat+'</li>');
$("#app-status-ul").append('<li>Data Status: '+JSON.stringify(data)+'</li>');
};
var serverRegFail = function(data, httpStat){
$("#app-status-ul").append('<li>Server Reg FAIL, HTTP status: '+httpStat+'</li>');
$("#app-status-ul").append('<li>Data Status: '+JSON.stringify(data)+'</li>');
};
$.ajax({url:"http://keb.bz/gcm/?deviceid=12345",
jsonp: 'callback',
dataType: 'jsonp',
timeout: 25000,
success: serverRegHit,
error: serverRegFail});
</script>
</html>
我一直在使用科爾多瓦2.9審判,降級到2.5,但這似乎也沒有幫助。
我的config.xml已經列入白名單。*和keb.bz域,權限允許應用程序訪問清單中的互聯網 - 我假設這是可行的,因爲它能夠成功檢索GCM設備ID。
我已經嘗試過使用JSON,JSONp,TEXT和各種數據類型的AJAX,但這些都沒有任何區別。
Cordova/PhoneGap中是否存在另一個我缺少的配置點?
任何幫助在這裏將不勝感激。
在logcat的控制檯任何異常/錯誤?你確定jQuery庫加載成功嗎?首先,你應該確保純JavaScript工作,然後嘗試測試jQuery是否正常。 – xiaowl
JQuery加載正常,因爲它成功地將錯誤輸出到DOM,並且無法注意到log cat中的任何異常。 – Kaiesh
確保您的應用具有「網絡訪問」權限。 – xiaowl