간단한 파일 업로드 페이지를 만들었습니다. 정말 간단하게하기 위해 iFrames를 사용하여 파일 입력을 포함하지 않았습니다. 따라서 파일 제출은 양식이 제출되어 페이지 재로드를 트리거합니다. 이것은 페이지에 업로드 된 파일 이름을 표시하는 데 필요합니다. 파일 이름은 jQuery에서 AJAX 호출을 통해 가져옵니다.IE9는 파일 업로드 후 ajax 메서드를 호출하지 않습니다.
다 (I 리눅스 시험하지 않았다 그러나 나는 너무 작동 추측) Mac과 Windows에서 크롬, 파이어 폭스, 오페라, 사파리의 매력처럼 작동
내 문제는 IE9, 내가 브라우저를 열 때이다 , ajax 호출이 이루어지고 데이터가 표시됩니다. 그러나 일단 파일이 업로드되면 작업이 중단됩니다.
서버가 디버그 모드로 시작되었으며 서비스 메소드에 중단 점을 설정했습니다. 중단 점은 파일이 업로드되지 않은 한 도달됩니다.
파일이 업로드되면 (즉, 작동 함) 더 이상 중단 점에 도달하지 않습니다. IE9는 서비스 메소드를 호출하지 않으며 데이터는 더 이상 변하지 않습니다. 다른 페이지 (google.com)로 이동하고 URL을 작성하여 페이지를 다시로드해도 도움이되지 않습니다.
이것은 브라우저에서 지금까지 본 이상한 동작입니다. 양식이 제출되고 파일이 보내지지만 후속 아약스 호출이 수행되지 않고 페이지가 변경되지 않습니다. 그러나 자바 스크립트는 AJAX 호출이 만들어진 것처럼 동작합니다. 서버가 더 이상 관여하지 않는다는 것입니다.
<form method="post" action="${pageContext.request.contextPath}/services/prepop/upload/csv"
id="fileUploadForm" enctype="multipart/form-data">
<div class="file-upload">
<input id="uploadedFile"
type="file"
name="uploadedFile"
onchange="submit()"/>
</div>
<input type="hidden" name="formId" value='{{formId}}'/>
<input type="hidden" name="contentId" value='{{id}}'/>
<input type="hidden" name="page" value='upload'/>
</form>
이 AJAX 호출
app.log("getting the form files");
$.ajax({
url:"${pageContext.request.contextPath}/services/jsonrest/prepop/list",
type:"GET",
async:true,
data:[
{name:"formId", value:formId}
],
success:function (prepopContentList) {
app.log("the content file list was fetched with " + prepopContentList.length + " entries");
upload.populateEntryList(prepopContentList, $("#fileUploadList"));
}
});
이상한 일이 로그 항목이 로그에 있지만 항상 같은 값으로 나타나는입니다 :
이
는 형태입니다. 디버그 모드에서 내용을 보면이를 확인할 수 있습니다. 배열은 항상 동일합니다.사용할 수있는 혜성이 없습니다. 그것은 일반 jQuery 응용 프로그램입니다.
단서가있는 사람.