gpt4 book ai didi

javascript - JQuery AJAX 文件下载在 IE8 中,显示黄色安全栏

转载 作者:行者123 更新时间:2023-11-29 22:22:22 24 4
gpt4 key购买 nike

我有一个页面,用户可以在其中选择表单上的一些选项,表单提交事件通过 .AJAX 将此数据发布到 PHP 页面并将文件写入服务器,然后 PHP 页面返回文件名,我使用 jquery.Download 提示用户保存文件。

这在 FF 和 Chrome 中完美运行,但我在 IE 中收到可怕的黄色信息栏。更糟糕的是,如果我的用户从信息栏中选择“仍然下载”,页面只会刷新而不会实际提示用户下载文件。

我在 Stackoverflow 上做了一些搜索,但似乎这个问题没有得到解答。

最佳答案

您看到这一点是因为用户启动的浏览器事件和程序启动的浏览器事件之间的定义不同。通常,由于 jQuery 将事件绑定(bind)到操作而触发的事件被认为是以编程方式启动的,即

$("#myElement").click(
function() {
$.ajax(...);
}
);

尝试通过将 jQuery .click() 事件绑定(bind)到可点击链接等来打开新选项卡时,您会看到相同的症状。

解决您的问题的一种可能方法是在您的 HTML 代码中使用一个事件属性,该属性调用一个 JS 函数,在您的 AJAX 调用中,即

<script type="text/javascript"> 

function submitAndDownload() {
$.ajax(...); //form submit
$.ajax(...); //download file
}

</script>

<button onClick="submitAndDownload();"></button>

这样浏览器就认为事件是用户发起的。您当然可以将下载 ajax 请求嵌套在表单提交 ajax 请求的正文中。这将取决于您需要做什么。但是,如果混合中有其他 ajax 调用,如果一个嵌套在另一个中,您可能会在套接字闭包中看到一些不一致。

关于javascript - JQuery AJAX 文件下载在 IE8 中,显示黄色安全栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11679576/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com