jQuery ajax를 사용하여 데이터를 jQuery 탭에로드하고 있습니다. 그것은 크롬과 파이어 폭스에서 잘 작동합니다. IE8에서는 데이터가로드되지 않는 경우가 있습니다. 캐시를 지우거나 페이지를 새로 고침하면 분명히 정상적으로 작동합니다.IE8을 사용하는 jQuery ajax의 간헐적 인 실패
IE의 종료 후 나중에 다시 시작하면 실패 할 수 있습니다. 몇 시간 안에 실패했지만 지연이 수 분이면 성공합니다. 적어도 그것은 실패 모드라고 생각합니다. 나는 마법의 시간을 엄격하게 결정하지 않았습니다.
ETA : 캐시를 지우거나 페이지를 새로 고침하면 작동합니다.
게시 데이터에 불필요한 시간 매개 변수를 넣었으며 ajax 호출에서 cache : false를 설정했습니다.
예상되는 데이터를 변경하면 올바르게 채울 것이므로 데이터가 캐시되지 않습니다.
또 다른 업데이트 :
데이터가 누락되었습니다. Facebook 앱입니다. 그것은 결정적인 것으로 판명되었습니다. 나는 Wireshark와 작동하는 세션과 작동하지 않는 세션을 모두 킁킁 거렸다. 그 차이점은 워킹 세션이 페이스 북 쿠키를 제출하고 작동하지 않는 것이 쿠키 쿠키를 제출한다는 것입니다.
그래서 이제 질문은 ajax 호출에 쿠키를 포함시키는 방법입니다. 아약스 호출에 대한 설명은 쿠키가 포함되어 있습니다. 내가 버그를보고있는 행동입니까?
ETA :
자바 스크립트 :
이$.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];
서버의 응답 헤더는 무엇입니까? –
Matt의 질문과 함께 코드를 게시 할 수 있습니까? 그러면 우리가 더 잘 대답 할 수 있습니다. – JasCav