Как включить сторонние куки-файлы под Phonegap и Android 3.2? - PullRequest
17 голосов
/ 02 декабря 2011

Я использую $ getJSON, чтобы поразить конечную точку node.js под Phonegap и Android. Код выглядит так

$.getJSON(
    serverURL + "/login?callback=?",
    "playerId=" + playerId + "&pwd=" + pwd,
    function(data){
        theCallbackFunction.call(null, JSON.parse(data));
    },
    function(jqXHR, textStatus, errorThrown) {
            alert('error ' + textStatus + " " + errorThrown);
    }
);  

В ответ на запрос входа в систему мой сервер отправляет обратно cookie сеанса. Этот файл cookie принимается и возвращается в последующих AJAX-запросах, если в браузере включены «Сторонние файлы cookie». Я обнаружил, что старые устройства Android (например, 2.2) позволяют это по умолчанию, а новые (3.2) - нет.

Можно ли заставить Phonegap включить сторонние файлы cookie для моего приложения Android?

Ответы [ 2 ]

1 голос
/ 20 июня 2012

У меня была похожая проблема при попытке аутентификации на моем сервере. Я вместо этого прибегнул к использованию localStorage. Смотрите код ниже или здесь .

    var store = window.localStorage,
request = {
    url: {SERVER_URL},
    headers : {
        Cookie: store.getItem('session')
    },
    complete: function (jqXHR, status){
        if (status != 'success') {
            console.log('ajax status: failure');
        } else if (store.getItem('session') != null) {
            console.log('ajax status: session exists');
        } else {
            console.log('ajax status: saving cookie');
            var header = jqXHR.getAllResponseHeaders();
            var match = header.match(/(Set-Cookie|set-cookie): (.+?);/);
            if (match) {
                session = match[2];
                store.setItem("session", session);
            }
        }
    }
}
$.ajax(request);

Выше я проверяю переменную localStorage 'session' и, если она существует, отправляет сохраненный файл cookie. Если он не существует, он примет параметр set-cookie, отправленный сервером в заголовках, сопоставит соответствующую часть и сохранит его в переменной сеанса localStorage.

0 голосов
/ 16 марта 2012

Phonegap не поддерживает абстракцию cookie.Никогда не нужно, потому что уже есть приложения / плагины, которые делают.Плюс он предназначен для обобщения функциональности телефона / устройства, а не браузера.Однако вы МОЖЕТЕ сделать это с помощью плагина jQuery.

https://github.com/carhartl/jquery-cookie

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