I am trying to invoke webservice using jquery ajax call.
I am using jasonp as a datatype to fix cross domain issues.
It works fine in all browsers. i tested it on other domains. i am getting a valid responce.
When i try to run it from android device emulator webservice call fails.
Please suggest.
Code :
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);
}
webservice response.
callback([{"language":"English","id":1},{"language":"Hindi","id":2},{"language":"Marathi","id":3}])
which is a valid jsonp response.
Android manifest file permissions.
<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" />
In web service URL try using
10.0.2.2instead oflocalhost.localhostor127.0.0.1points to emulator / android device while10.0.2.2is a special alias to your host loopback interface (i.e.127.0.0.1on your development machine). Check this Link for more details.