PhoneGap 1.5.0 для Android Cordova AJAX JSON - PullRequest
1 голос
/ 13 марта 2012

Я пытался отправить запрос AJAX более суток через приложение Android PhoneGap под управлением последней версии 1.5.0 PhoneGap.Я пробовал GET, POST, AJAX, getJSON-запрос из пакета стенд jQuery (не jQuery Mobile).Все это работает в стандартном браузере, но из приложения ничего не работает.

Вот мой последний код JJuery AJAX

$.get(
    'http://www.fakedomainname.com/ajax/user_login.php',
    $('#emailLoginForm').serialize(),
    function(json) {
        //console.log(json);
        alert(json.status);
    },
    'json'
);

Вот мой PHP-код

header('Access-Control-Allow-Origin: '.$_SERVER['HTTP_ORIGIN']); 
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json'); 

$output['status'] = 99; //new user  

echo json_encode($output);

Я добавил clearCache в свой AndroidManifest.xml

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        super.clearCache();
        super.loadUrl("file:///android_asset/www/index.html");
    }

Я добавил это в /res/xml/cordova.xml

<access origin=".*"/>

Что еще мне не хватает?Я не могу получить запрос GET jQuery для успешного оповещения чего-либо?Я убедился, что кэш очищен.Я внес белый список в междоменный вопрос в заголовке моего php-файла и в файле cordova.xml.Я потерян, кто-нибудь успешно создал вызов AJAX с новым PhoneGap 1.5.0?

Ошибка была моей ошибкой.URL-адрес, который я нажимал, также включал функцию, которая проверяла, является ли пользовательский агент мобильным устройством.Если это так, он перенаправит вызов на мобильную версию домена / сайта, который я запрашивал.В результате мое значение json никогда не возвращалось.Я удалил функцию проверки мобильного устройства, и все мои настройки выше работали отлично.

Ответы [ 2 ]

1 голос
/ 07 июня 2012
super.init(); 
super.clearCache();

Вам не хватает init.Попробуйте добавить выше.

1 голос
/ 13 марта 2012

Добавили ли вы разрешение Интернета в свой файл manifest.xml для Android:

<uses-permission android:name="android.permission.INTERNET">

Если да, находится ли оно в нужном месте ( не в теге приложения)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...