2010-11-19 29 views
1

我的問題是,當我嘗試使用jQuery Form插件(http://jquery.malsup.com/form/)和contentType: script提交表單時,彈出IE的「Save as」嘗試保存我的響應腳本。Internet Explorer嘗試在Ajax表單上保存腳本表單jQuery插件提交

示例代碼:

$("#vendor_edit").ajaxForm({dataType: "script"}); 

響應是JavaScript,以便得到正確的所有其他瀏覽器中執行,但IE嘗試保存此文件「vendors.js」。任何想法,可能會迫使IE來觸發這個彈出窗口?

+2

響應的內容類型是什麼? – 2010-11-19 08:45:15

+1

這是特定於您的計算機上的IE嗎?如果是的話,你有沒有檢查你的瀏覽器設置下載而不是打開的文件?檢查下載後的確認選項。 – 2010-11-19 09:27:32

回答

0

嘗試使用:

$().getScript(url, function(data, textStatus){ 
    if (typeof(data) === "object"){ 
     eval(data); //i.e if you're planning to execute your script 
    } 
}); 
0

現在是棘手。響應類型確實很重要,它需要是「text/plain」來停止觸發另存爲對話框,而不是Explorer的「application/javascript」。

此外,我不得不包裝腳本「textarea」標籤,exclusivelly資源管理器使eval(響應)工作一些瘋狂reazon。所有其他瀏覽器都可以在不使用texterea封裝的情況下處理它,但是IE遇到了問題(我已經看到了Dojo使用這個解決方案並複製了它)。