0

Androidのphonegap 2.5.0アプリケーションでajaxを機能させようとして立ち往生しています。スタックオーバーフローとグーグルでスキャンしましたが、何も役に立たないようです。ご意見をお聞かせください。

したがって、次のような単純な AJAX GET リクエストを作成しようとしています。

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');
            }
       });
}

};

phonegapでは必要ないように見えますが、jsonpを使用していますが、ブラウザでのテストに役立ちます。したがって、これはブラウザでテストすると機能します。「URLに接続しています」、「成功」、「完了」というアラートが表示されます。ただし、phonegapでは、「URLに接続しています」と警告するだけで、何もしません。

config.xmlに追加<access origin="*" />し、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>

まだ機能していません:(。どんな助けも大歓迎です。ありがとう!

4

2 に答える 2

0

なぜ単純化しないのですか?

$.getJSON('yourtarget.php', function(data) {
  alert("my name is: "+data.name+" !!! ");
});
于 2013-06-24T11:48:40.517 に答える