2012-01-12 3 views
0

dojo.io.frame.send()를 사용하여 ajax 파일 업로드를 시도하고 있습니다. 그것 FF와 크롬 문제없이 IE 8 (다른 버전에 대해 확실하지 않음)에서 작동합니다. 코드는 아래에 붙여 : 나는 웹 검색dojo.io.frame.send를 사용한 파일 업로드가 IE에서 처음으로 작동하지 않습니다.

function submitForm() 
{  
dojo.require("dojo.io.iframe"); 
dojo.io.iframe.send({ 
    url : "/uploadfile.do", 
    form : "myForm", 
    method: "POST",  
    handleAs: 'text', 
    load : function(response, ioArgs) 
    { 
     return response; 
    }, 
    error : function(response, ioArgs) { 
     return response; 
    } 
}); 
return false; 
} 

이 발견 : 위의 코드에서 dojo.require() 행 다음에 다음 코드를 추가하는 저를 묻는 메시지가
http://groups.google.com/group/dojo-interest/browse_thread/thread/17dace02652bcec3

:

if ((dojo.isSafari || dojo.isIE) && dojo.io.iframe["_frame"]) 
{ 
    dojo.destroy(dojo.io.iframe['_frame']); 
    var frameName = dojo.io.iframe._iframeName; 
    dojo.io.iframe["_frame"] = window[frameName] = null; 
    if (window.frames) 
     window.frames[frameName] = null; 
} 

IE에서 처음에는 작동하지 않지만 업로드 버튼을 두 번째로 클릭하면 작동합니다.

추가 정보 : HTML의 양식 태그에는 method = "post"매개 변수가 있습니다.

+0

어떤 Dojo 버전을 사용하고 있습니까? – peller

답변

0

http 응답 내용 유형을 서버에서 "text/html"로 명시 적으로 설정하여 IE 8에서 작동하도록했습니다. 이상한 IE 9, FF와 크롬은 유연성을 제공하지만 IE는 훨씬 더 엄격합니다.

관련 문제