Я получаю некую устойчивую ошибку в IE8, это происходит примерно в половине случаев.У меня есть каскадные выпадающие списки, использующие ajax для получения следующих опций окна выбора.
$(function () {
$("#stock_item_id").change(function () {
var stock_item = $("#stock_item_id > option:selected").attr("value");
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "/Unit/ForStockItem/" + stock_item,
data: "{}",
dataType: "json",
success: function (data) {
var options = '';
var selected = "0";
for (p in data) {
var unit = data[p];
if (unit.selected == "true") { selected = unit.id; }
options += "<option value='" + unit.id + "'>" + unit.name + "</option>";
}
$("#unit_id").removeAttr('disabled').html(options);
$("#unit_id").val(selected);
}
});
});
});
И действие контроллера MVC2
public JsonResult ForStockItem(int id)
{
StockItemRepository stockItemRepository = new StockItemRepository(repository.db);
tblStockItem stockItem = stockItemRepository.Single(id);
return new JsonResult
{
Data = repository.parentList(stockItem.tblUnit.BaseUnitId, stockItem.unit_id)
};
}
Это работает на 100% из Firefox, Chrome и т. Д. И около половинывремя в IE8.Когда это не работает в IE8, переменная данных равна нулю в jquery.
Если я изменяю запрос на GET и добавляю JsonRequestBehavior = JsonRequestBehavior.AllowGet в JsonResult, он работает на 100% в IE8 (без других изменений кода).Хотя это решение, оно не идеально.Это известная ошибка в Jquery и IE8, что я могу сделать, чтобы исправить ее и все еще использовать POST?
Большое спасибо