Я использую jQuery ajax для загрузки данных на вкладку jQuery. Он отлично работает в Chrome и FireFox. В IE8 данные иногда не загружаются. Если я очищаю кеш или перезагружаю страницу, она, очевидно, работает нормально.
Насколько я могу судить, происходит сбой после выключения IE и последующего его запуска через некоторое время. Он потерпел неудачу в течение нескольких часов, но успешно, если задержка составляет только минуты. По крайней мере, это то, что, как мне кажется, режим сбоя, я не определил строгое волшебное время.
ETA: работает, если я очищаю кеш или обновляю страницу.
Я поместил лишний параметр времени в данные поста и установил cache: false в вызове ajax.
Данные не кэшируются, так как, если я изменю ожидаемые данные, они будут заполнены правильно.
Еще одно обновление:
Недостающий кусок данных. Это приложение для Facebook. Это оказывается решающим.
Я понюхал как рабочие, так и не рабочие сессии с Wireshark. Разница в том, что рабочая сессия отправляет файлы cookie Facebook, а не рабочая - нет.
Таким образом, теперь вопрос заключается в том, как заставить ajax-вызов включать cookie-файлы. Я нашел описание вызова ajax о том, что он включает файлы cookie. Поведение я вижу ошибку?
ETA:
JavaScript:
$.ajaxSetup
(
{
// Disable caching of AJAX responses
cache: false
}
);
$(document).ready
(
function()
{
$('#shopTabs').tabs();
thing.create();
thing.editPicture();
$('#shopTabs').bind
(
'tabsselect',
function(event, ui)
{
thing.setReload(ui.index);
thing.setActive(ui.index);
}
);
}
);
// Must be global for Java to call
function reload()
{
thing.create();
thing.editPicture();
}
var thing =
{
reload : 0,
active : 0,
noOp : function()
{
},
create : function()
{
date = new Date();
$('#shopTabs1').load('create.php', {time : date.getTime()}, thing.linkform);
},
editPicture : function()
{
date = new Date();
$('#shopTabs2').load('editPicture.php', {time : date.getTime()}, thing.noOp);
},
linkform : function()
{
$('#upload').ajaxForm({target : '#shopTabs1'});
},
setReload : function
(
index
)
{
this.reload = this.reloadList[index];
},
setActive : function
(
index
)
{
this.active = this.activeList[index];
},
load : function
(
php,
args,
loadFn
)
{
var settings =
{
type : "POST",
cache : false,
url : php,
data : args,
context : this,
success : function (data)
{
$(this.active).html(data);
loadFn();
}
}
$.ajax(settings);
}
};
thing.activeList = ['#ui-tabs-1', '#shopTabs1', '#shopTabs2'];
thing.reloadList = [thing.noOp, thing.create, thing.editPicture];