Я хочу выпустить вызов AJAX на мой удаленный сервер, загрузить несколько параметров и загрузить некоторый контент. Этот скрипт отлично работает в браузере, но не работает с PhoneGap (тестирование на Ripple, chrome).Проблемы с PhoneGap с ajax и jsonp
Я посмотрел на проблемы и решения, такие как:
PhoneGap not issuing AJAX (jsonp) request
Issues with jQuery, ajax, and jsonp
Ajax вызова:
$.ajax({
url: "https://mydomain.com/file.php",
data: {test:"test"},
type: 'GET',
dataType: 'jsonp',
timeout: 5000,
success: function(data){
if(data['var'] == 'correct'){
notifyAlert('correct','Login');
}else{
notifyAlert('incorrect','Login');
}
},
error: function(x,e){
if(x.status==0){
notifyAlert('You are offline!!\n Please Check Your Network.', 'Error');
}else if(x.status==404){
notifyAlert('Requested URL not found.', 'Error');
}else if(x.status==500){
notifyAlert('Internel Server Error.', 'Error');
}else if(e=='parsererror'){
notifyAlert('Error.\nParsing JSON Request failed. '+x.status, 'Error');
}else if(e=='timeout'){
notifyAlert('Request Time out.');
}else {
notifyAlert('Unknow Error.\n'+x.responseText, 'Error');
}
}
});
код удаленного сервера:
$record = array('var' => 'correct');
echo $_GET['callback'] . '(' . json_encode($record) . ');';
Мой файл config.xml имеет:
<access origin="https://mydomain.com" />
При тестировании на Ripple (эмулятор) это дает мне статус 0 ошибку. При тестировании того же сценария на моем локальном сервере (через браузер) он дает мне правильное предупреждение о варне.
Я также протестировал вызов json, и это отлично работает в эмуляторе, но оно не работает, когда я загружаю apk на свой телефон. Тот же результат, что и проблема выше с jsonp (ошибка состояния 0).
Кажется, проблема связана с эмулятором Ripple. Протестировал тот же код с eclipse, и все работает отлично! Это может быть версия cordova в Ripple, но после тестирования с версией кордовы 2.0.0 она все равно дала мне ошибку 0. Единственное, о чем я могу думать, это то, что мой config.xml ошибочен, но это не объясняет тот факт, что json-тест работает, а тест jsonp не работает. – rinaldo