我卡住了試圖使android的phonegap 2.5.0應用程序使ajax工作。掃描通過stackoverflow和谷歌,但似乎沒有任何幫助。請指教。Phonegap的AJAX問題
所以,我只是試圖讓一個簡單的AJAX得到這樣的要求:
var app = {
initialize: function() {
this.bindEvents();
},
bindEvents: function() {
document.addEventListener('deviceready', this.onDeviceReady, false);
},
onDeviceReady: function() {
var url='http://test.dev/app_dev.php/stuff/add-external?callback=test';
alert('connecting to '+url);
$.ajax({
type: 'GET',
url: url,
dataType: 'jsonp',
crossDomain: true,
contentType: "application/json",
success: function(res) {
alert('success:'+res);
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
},
complete: function(data) {
alert('complete');
}
});
}
};
我使用jsonp,儘管它似乎不需要在phonegap上,但有助於在瀏覽器上進行測試。 所以當我使用瀏覽器進行測試時,它會生效:警報「連接到URL」,然後是「成功」,然後是「完成」。在phonegap上,但它只是喚醒「連接到URL」,然後什麼也沒有。
我將<access origin="*" />
添加到了config.xml,並且還添加了res/xml/config/xml。還增加了這些權限AndroidMainfest.xml:
<?xml version="1.0" encoding="utf-8" ?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:windowSoftInputMode="adjustPan" package="com.phonegap.exampleapp" android:versionName="1.1" android:versionCode="1">
<supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:resizeable="true" android:anyDensity="true" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
這是我RES/XML/plugins.xml
<?xml version="1.0" encoding="utf-8" ?>
<plugins>
<plugin name="NetworkStatus" value="org.apache.cordova.NetworkManager" />
</plugins>
仍然沒有工作:(任何幫助表示讚賞感謝。!
將「this.onDeviceReady」更改爲「app.onDeviceReady」並讓我們知道它是如何發生的。 –
我不明白這可能是相關的,因爲這種方法在設備上觸發很好。不工作的部分是阿賈克斯本身 –
我明白,但你不能說科爾多瓦是否實際上提高了平均或其他的東西是射擊。由於應用程序不是實例對象,「this」指向窗口對象(很可能)。試試我的建議,讓我們知道它是怎麼回事。 –