2013-05-27 2 views
2

Это ссылка на мой рабочий сайт: []Browser Локальное хранение данных и SSL

Эта ссылка будет удалена, когда мой вопрос отвечает :(

Мы используем браузеры локального хранилища для хранения пользователей корзина. Поэтому при добавлении элемента в корзину обратите внимание на мини-корзина будет держать в синхронизации, как можно было бы ожидать.

Вот шаги, чтобы воспроизвести ошибку.

  1. Добавить товар в корзину под не защищенных вол e
  2. Перейти в корзину. (Который находится под SSL)
  3. Увеличение количества на 1 на странице корзины
  4. Вернитесь к небезопасной странице
  5. Обратите внимание на minicart не является правильным

Это происходит потому, что есть по существу две версии локального хранилища, 1 под SSL и 1 на небезопасной странице. Как аннулировать небезопасный локальный ресурс с защищенной страницы?

Требования: Нам нужны телеги страницу под SSL

Спасибо.

ответ

0

рабочий пример в производстве

То, как я сделал это использовать IFRAME, который делает PostMessage своему родителю. IFrame всегда находится на https, но родитель может быть либо http, либо https. Это решение предполагает, что модификации относятся к SSL только для хранения и синхронизируют его для не SSL, но вы можете адаптировать его для отправки изменений в обоих направлениях, чтобы родитель non ssl отправил изменения в ssl-child.

источник IFrame SSL (хранение-sync.html):

if (sessionStorage.cart) 
    try { 
    var obj = { cart: JSON.parse(sessionStorage.cart) }; 
    parent.postMessage(JSON.stringify(obj), 'http://yourdomain.com'); 
    } catch(ex) { 
    console.log(ex); 
    } 

SSL/не SSL родительская источник:

window.addEventListener('message', function(ev) { 
    if (ev.origin !== 'https://yourdomain.com') 
    return; 
    try { 
    var obj = JSON.parse(ev.data); 
    sessionStorage.cart = JSON.stringify(obj.cart); 
    cart.reload(); 
    } catch(ex) {}; 
}); 

$('body').append('<iframe style="display:none" src="https://yourdomain.com/storage-sync.html?r=' + Math.random() + '"></iframe>'); 

Размещение мишени происхождение правильных протоколов обеспечивает вас не будет отправлять сообщения неверным.

Смежные вопросы