Здравствуйте!
Создаю гибридное приложение, для этих целей использую отдельные контроллеры, которые через шаблон формируют json, которые забираю через $.ajax jQuery и формирую контент страниц - все стандартно.
Проблема возникает с сессиями, когда добавляю товар в корзину - товар добавляется, но при следующем вызове корзина оказывается пуста.
Вот пример ответа при нажатии на кнопку "добавить в корзину"
Как мы видим товар добавился, сработала функция add из \system\library\cart.php, но если мы прозвоним повторно или добавим еще товар, то переменная $_SESSION['data']['cart'] будет очищена или содержать в себе только последний добавленный товар. Проблема явно с сессиями, возможно нужно передавать какие то заголовки, хотя я и это пробовал.
Эта ошибка возникает только когда отлаживаю через браузер (как мобильный, так и на ПК), но как только я упаковываю приложение и ставлю на телефон, то все работает!
Прошу помочь, отладка с браузера идет гораздо быстрее, да и не понятно почему такая разница в работе, по сути оба случая - браузеры, почему в одном работает (webview android), а в других нет..
Код добавления товара (стандартный из opencart)
var cart = {
'add': function(product_id, quantity) {
$.ajax({
url: config.index + 'app/checkout/cart/add',
type: 'post',
data: 'product_id=' + product_id + '&quantity=' + (typeof(quantity) != 'undefined' ? quantity : 1),
dataType: 'json',
beforeSend: function() {
console.log('beforeSend');
},
complete: function() {
console.log('complete');
},
success: function(json) {
if (json['success']) {
setTimeout(function () {
$('#cart > button').html('<span id="cart-total">total= ' + json['total'] + '</span>');
}, 100);
$('#cart > ul').load(config.index + 'app/cart/info ul li');
}
},
error: function(xhr, status, error) {
console.log(error);
}
});
},
}