Javascript InternetExplorer试图以jQuery插件提交的形式在Ajax上保存脚本
我的问题是,当我尝试使用jqueryformplugin()提交一个带有Javascript InternetExplorer试图以jQuery插件提交的形式在Ajax上保存脚本,javascript,ajax,internet-explorer,jquery-forms-plugin,Javascript,Ajax,Internet Explorer,Jquery Forms Plugin,我的问题是,当我尝试使用jqueryformplugin()提交一个带有contentType:script的表单时,会在IEs上出现“另存为”弹出窗口,试图保存我的响应脚本 示例代码: $("#vendor_edit").ajaxForm({dataType: "script"}); 响应是JavaScript,它可以在所有其他浏览器上正确执行,但IE试图将此文件保存为“vendors.js”。知道什么会迫使IE触发此弹出窗口吗?尝试使用: $().getScript( url, funct
contentType:script
的表单时,会在IEs上出现“另存为”弹出窗口,试图保存我的响应脚本
示例代码:
$("#vendor_edit").ajaxForm({dataType: "script"});
响应是JavaScript,它可以在所有其他浏览器上正确执行,但IE试图将此文件保存为“vendors.js”。知道什么会迫使IE触发此弹出窗口吗?尝试使用:
$().getScript( url, function(data, textStatus){
if (typeof(data) === "object"){
eval(data); //i.e if you're planning to execute your script
}
});
现在这很棘手。响应类型确实很重要,它需要是“text/plain”才能停止触发另存为对话框,而不是浏览器的“application/javascript”
此外,我还必须包装脚本“textarea”标签,这是浏览器的专有标签,以使eval(响应)在一些疯狂的reazon上工作。所有其他浏览器都可以在不使用texterea包装器的情况下处理它,但IE有一个问题(我已经看到Dojo使用的这个解决方案并复制了它)。响应的内容类型是什么?这是否特定于您机器上的IE?如果是,是否检查了要下载而不是打开文件的浏览器设置?选中下载后确认选项。