gpt4 book ai didi

java - 当 ie7 和 ie8 说 "to help protect your bla bla"时,我怎么能意识到?因为它阻止我的 servlet 将字节数组作为文件下载

转载 作者:行者123 更新时间:2023-11-29 06:12:52 34 4
gpt4 key购买 nike

当返回一个 zip 文件(字节数组)供下载时,ie7 和 ie8 阻止下载并说“帮助保护你的 bla bla”。然后当我点击这个栏并点击“下载文件”时。页面重新加载后,下载未开始。因为我的下载仅在单击链接时才开始。

firefox 没有问题。我只需要知道如何检测这种情况?

让我们告诉你这个系统是如何工作的:

我的下载链接:

<a href="javascript:" onclick="getSelectedCheckBoxes();downloadForm.submit()">downloadr</a>

单击此链接后,我在 ProcessAction 中做了一些事情,然后 portlet 返回到 jsp。在带有以下代码的 jsp 中转发到服务于下载的 servlet:

location.href="<%=request.getContextPath()%>/ZipDownloadServlet?cacheKey=blabla"

最佳答案

问题是您尝试下载的资源不是幂等的(即它不是 GET,而是应该开始下载的 POST。为了解决 IE 的这个问题,我建议在两者之间放置一个重定向POST 和下载,所以

  • POST 准备下载(可能检查 POST 参数,等等)和
  • 然后使用 HTTP 303 响应代码重定向,并将 Location header 设置为一个(临时)URL,在该 URL 中可以通过 GET 请求资源
  • 当 IE 决定它想要请求用户许可然后再次 GET 时,没有问题,因为您的资源是幂等的,可以按 IE 喜欢的次数下载

关于java - 当 ie7 和 ie8 说 "to help protect your bla bla"时,我怎么能意识到?因为它阻止我的 servlet 将字节数组作为文件下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6201139/

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