오늘 겪은 문제에 대해 이야기해 보겠습니다
Excel을 내보내는 과정에서는 버튼을 누른 후 많은 양의 데이터를 백그라운드로 전송해야 합니다.
위 데이터는 매우 긴 문자열입니다.
Firefox, Google Chrome에서는 문제가 없으나 IE9에서는 정상적으로 내보내기가 되지 않습니다.(다른 IE에서는 시도해보지 않았는데 마찬가지일 겁니다.)
이 문제가 발생하는 이유는 브라우저마다 URL 구문 분석 길이 제한이 다르기 때문입니다. IE는 가장 작은 것이므로 문제가 발생했습니다
Microsoft Internet Explorer(브라우저)
IE 브라우저의 최대 URL 제한은 2083자입니다. 이 숫자를 초과하면 제출 버튼이 응답하지 않습니다.
Firefox(브라우저)
Firefox 브라우저의 경우 URL 길이 제한은 65,536자입니다
사파리(브라우저)
최대 URL 길이 제한은 80,000자입니다.
오페라(브라우저)
최대 URL 길이는 190,000자로 제한됩니다.
Google(크롬)
URL의 최대 길이는 8182자로 제한됩니다
여기서 웹 서버에도 URL 길이에 제한이 있다는 점에 유의하세요! !
따라서 더 이상 Get 메서드를 사용할 수 없습니다. post를 사용하여 값을 전달하는 방법만 찾을 수 있으므로 다음과 같은 해결 방법이 적합한지 조언을 부탁드립니다. 즉, 기능을 실현할 수 있습니다
post를 사용하여 긴 문자열을 배경으로 전송하고 세션에 저장한 다음 post의 콜백 메서드에서 window.location.href
를 사용하는 아이디어입니다.코드는 다음과 같습니다.