programing

IE에서 "시스템 호출로 전달된 데이터 영역이 너무 작습니다"라는 오류가 발생하는 이유는 무엇입니까?

magicmemo 2023. 6. 20. 21:32
반응형

IE에서 "시스템 호출로 전달된 데이터 영역이 너무 작습니다"라는 오류가 발생하는 이유는 무엇입니까?

Javascript를 사용하여 다운로드할 csv 파일을 만들고 있으며 IE를 제외한 모든 부분에서 완벽하게 작동합니다(8과 10을 테스트했습니다).

IE8에서 파일을 만들고 다운로드하기 위해 버튼을 클릭하면 다음과 같은 오류가 나타납니다."The data area passed to a system call is too small"IE10에서 버튼을 클릭하면 주소 표시줄에 만든 URL이 있는 새 탭이 열리고 아무것도 다운로드되지 않습니다.

이 오류가 무엇을 의미하는지 아십니까?

버튼에 다음 코드가 있습니다.

var csvContent = "data:text/csv;charset=utf-8,";
csvContent += escape(myCSVvariable);

var encodedUri = encodeURI(csvContent);
window.open(encodedUri);

이것은 이 질문과 관련이 있지만 몇 가지를 변경한 후 다른 오류가 발생하여 새로 시작했습니다 - 자바스크립트를 사용하여 csv 파일을 만들고 다운로드하려면 어떻게 해야 합니까?

이 문제는 알려진 문제이지만 해결 방법이 있습니다.

다음 코드 추가

if (navigator.msSaveBlob) 
{ // IE 10+ 
navigator.msSaveBlob(new Blob([csv], { type: 'text/csv;charset=utf-8;' }), "filename.csv"); 
}

그리고 그 문제는 해결되어야 합니다.이것은 IE10에서 작동합니다. 저는 IE8에서 테스트하지 않았습니다(IE8은 더 이상 없습니다!).

참조:

https://msdn.microsoft.com/library/Hh772331

https://msdn.microsoft.com/library/Hh772298

원천

IE에는 URL 크기 제한이 있습니다.

언급URL : https://stackoverflow.com/questions/20844644/why-am-i-getting-this-error-in-ie-the-data-area-passed-to-a-system-call-is-too

반응형