0

jqueryajax呼び出しを使用してWebサービスを呼び出そうとしています。クロスドメインの問題を修正するためのデータ型としてjasonpを使用しています。

すべてのブラウザで正常に動作します。他のドメインでテストしました。私は有効な応答を得ています。Androidデバイスエミュレーターから実行しようとすると、Webサービスの呼び出しが失敗します。

提案してください。

コード:

function getJsonData()
{
    alert("Within get json function.. ");
    (function($) {
    var url = 'http://localhost:8080/mobile-services/rest/languages.json?callback=callback';
    $.ajax({
       type: 'GET',
        url: url,
        async: false,
        contentType: "application/json",
        dataType: 'jsonp'
    });
})(jQuery);
}
function callback(data)
        {
            alert(data);
        }

Webサービスの応答。

callback([{"language":"English","id":1},{"language":"Hindi","id":2},{"language":"Marathi","id":3}])

これは有効なjsonp応答です。

Androidマニフェストファイルの権限。

<uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.WRITE_CONTACTS" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.BROADCAST_STICKY" />
4

1 に答える 1

1

WebサービスのURL で、10.0.2.2 の代わりにを使用してみてくださいlocalhost
localhostまたは127.0.0.1、エミュレーター/ androidデバイスを指します10.0.2.2が、はホストループバックインターフェイス(つまり127.0.0.1、開発マシン上)の特別なエイリアスです。詳細については、このリンクを確認してください。

于 2012-06-27T07:58:14.200 に答える