Позвольте мне сначала рассказать о проблемах, с которыми мы столкнулись сегодня.
Процесс экспорта Excel требует переноса большого объема данных в фоновый режим после нажатия кнопки. Первоначальный подход заключается в следующем:
Скопируйте код кода следующим образом:
var actionUrlSetData = "****Action!exportDatas.action"+ "?now=" + new Date().getTime();
window.location.href= actionUrl + "&" + данные;
Данные выше представляют собой очень длинную строку.
В Firefox и Google Chrome проблем нет, но в IE9 нормально экспортировать не получается (в других IE не пробовал, должно быть так же).
Причина этой проблемы в том, что разные браузеры имеют разные ограничения на длину для анализа URL-адресов. У IE самый маленький из них, поэтому что-то пошло не так.
Microsoft Internet Explorer (браузер)
Максимальное ограничение для URL-адресов в браузере IE составляет 2083 символа. Если это число превышено, кнопка отправки не будет реагировать.
Firefox (браузер)
Ограничение длины URL-адреса для браузера Firefox составляет 65 536 символов.
Сафари (браузер)
Максимальная длина URL-адреса составляет 80 000 символов.
Опера (Браузер)
Максимальная длина URL-адреса составляет 190 000 символов.
Гугл (хром)
Максимальная длина URL-адреса ограничена 8182 символами.
Также обратите внимание, что WEB-сервер также имеет ограничения на длину URL-адреса! !
Поэтому мы не можем использовать метод Get. Мы можем найти только способ использовать post для передачи значения, поэтому у нас есть следующее решение. Я не уверен, подходит оно или нет. Я хотел бы обратиться за советом к эксперту. Короче говоря, функцию можно реализовать.
Идея состоит в том, чтобы использовать post для передачи длинной строки в фоновый режим, сохранить ее в сеансе, а затем использовать window.location.href в методе обратного вызова post.
Код выглядит следующим образом:
Скопируйте код кода следующим образом:
$.post(actionUrlSetData,mapList,function(){
var actionUrl = путь + "/***action!exportDatas.action"+ "?now=" + new Date().getTime();
window.location.href= actionUrl + "&" + (данные);
});