2012-01-12 55 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; 
} 

我在網上搜索,並發現這一點:
http://groups.google.com/group/dojo-interest/browse_thread/thread/17dace02652bcec3

這促使我補充dojo.require()行後,下面的代碼片段在上面的代碼:

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 2012-01-14 05:37:20

回答

0

我通過在服務器上明確設置http響應內容類型爲「text/html」,讓它在IE 8中工作。奇怪的是,IE 9,FF和Chrome提供了這種靈活性,但IE更嚴格。

相關問題