Я пишу приложение на Rails.Когда я работал с переменными сеанса, я заметил, что хэш сеанса очищается при перезагрузке страницы.Я отладил его и случайно обнаружил, что в функции onload () я запустил несколько запросов Ajax для правильной обработки кнопок возврата браузера, и, очевидно, эти запросы Ajax каким-то образом очищали сеанс.Я закомментировал эти запросы Ajax и обнаружил, что переменные сеанса не были очищены.
Я только что обнаружил, что проблема не связана с вызовами onload, но в целом любой вызов ajax, кажется, очищает сеанс.Может кто-нибудь объяснить это поведение?
В моем файле макета application.html.erb
<body onload="setDefaults()">
В моем файле public / javascripts / application.js
function setDefaults()
{
if($('page_type').value == 'create')
{
new Ajax.Request('/accessions/show_species', {asynchronous:true, evalScripts:true, parameters:'selected_value='+$('accession_report_type').value});
new Ajax.Request('/accessions/display_funds', {asynchronous:true, evalScripts:true, parameters:'customer_type='+$('accession_customer_type').value});
new Ajax.Request('/accessions/show_specimen', {asynchronous:true, evalScripts:true, parameters:'identical='+$('species_is_identical').checked+'&count='+$('species_number').value+'¤t_count='+$('specimen_info_div').childElements().length});
}
}
Можеткто-нибудь, дайте мне знать, если я делаю что-то, чего не должен делать.
Спасибо,