为长篇文章道歉,但我真的需要在正确的方向上轻推,因为我无法看到这里的问题。
以下适用于Chrome,Firefox,但IE并不适用。
CORRECT结果将如下所示:
然而,在IE 11中,错误的结果如下:
在皮肤下有一些JavaScript用MVC控制器的一些AJAX回调进行更新:
//Applies the selected filter from the values selected in the drop down
function ApplyFilter() {
var brandSelected = $('#filterBrand').val();
var cruiseLengthSelected = $('#filterCruiseLength').val();
var departureDateSelected = $('#filterDepartureDate').val();
var departureFromSelected = $('#filterDepartFrom').val();
var regionSelected = $('#filterRegion').val();
var shipSelected = $('#filterShip').val();
cruisesTemplate.UiBlock('.entire-page');
cruisesTemplate.UiSetBusy('.entire-page');
$.ajax({
url: '/cruises/currentcruiselistfilterset?' +
'aBrandId=' +
brandSelected +
'&aCruiseLength=' +
cruiseLengthSelected +
'&aDepartureDate=' +
departureDateSelected.replace(' ', '_') +
'&aRegionHierarchyItemId=' +
regionSelected +
'&aDepartureFromHierarchyItemId=' +
departureFromSelected +
'&aShipId=' +
shipSelected
})
.error(function (xhr, status, error) {
cruisesTemplate.UiClearBlock('.entire-page');
cruisesTemplate.UiClearBusy('.entire-page');
})
.success(function (data) {
$.ajax({
dataType: 'html',
type: 'GET',
url: window.location.href
})
.error(function (xhr, status, error) {
cruisesTemplate.UiClearBlock('.entire-page');
cruisesTemplate.UiClearBusy('.entire-page');
})
.success(function (data) {
$('#results').html(data);
//Now refresh the filter bar
$.ajax({
dataType: 'html',
type: 'GET',
url: '/cruises/filterbarrefresh'
})
.error(function (xhr, status, error) {
cruisesTemplate.UiClearBlock('.entire-page');
cruisesTemplate.UiClearBusy('.entire-page');
})
.success(function (data) {
$('#filter-bar').html(data);
cruisesTemplate.UiClearBlock('.entire-page');
cruisesTemplate.UiClearBusy('.entire-page');
});
});
});
}
我唯一能想到的是,这可能是一个时间问题(不太可能),也可能是与 url:window.location.href (更有可能)相关的时间问题造成这个问题。
修改 看来肯定是 url:window.location.href 是问题,就像在其中使用的浏览器一样,我看到以下AJAX请求:
https://localhost/cruises/filterbarrefresh https://localhost/departing/australia/cruises https://localhost/cruises/currentcruiselistfilterset?abrandid=8&acruiselength=0&adeparturedate=january_2015&aregionhierarchyitemid=1&adeparturefromhierarchyitemid=73&ashipid=0
而在IE中,我只看到这个AJAX请求(因此在更新区域内更新完整网站,因为我们正在执行整页请求:
https://localhost/departing/australia/cruises
我还验证了这不是jQuery.html()问题described here。使用虚拟硬编码字符串或$("#container")。empty()。append(data);模式仍会导致相同的IE不良行为。
/编辑:
我的基本问题是:
非常感谢所有指针和建议。
答案 0 :(得分:1)
这里的解决方案最终关闭了jQuery AJAX调用的缓存,所以:
$ .ajax({cache:false;});