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" />