gpt4 book ai didi

c# - IE 11 打开旧的覆盖的 PDF 而不是新的 PDF?

转载 作者:行者123 更新时间:2023-12-03 12:28:06 25 4
gpt4 key购买 nike

编辑:

我在 Internet Explorer 中编辑了此设置。 Internet 选项 -> 常规(选项卡) -> 设置(按钮) -> 临时 Internet 文件(选项卡) -> 选择“每次访问此页面时”。现在它每次都会加载正确的 PDF,但它对我的用户没有帮助。我还尝试将 cache:false 添加到 JQuery 中的 ajax 调用中。

<小时/>

下面的代码在 Firefox 和 Chrome 中运行良好。这两个浏览器每次都会在新选项卡中打开新的 PDF,没有任何问题。不幸的是,Internet Explorer 会提示您打开或保存 PDF,选择打开后,它会显示旧的 0.pdf,而不是您刚刚创建的 0.pdf。如果您选择保存 PDF,然后从桌面打开它,则覆盖不会有问题。 (注意:对于每个用户 session ,第一次打开仍然有效,但此后每次直到注销,它都会显示您选择打开而不是保存时生成的第一个 PDF)

那么有没有办法让 Internet Explorer 识别出服务器上的 PDF 已被覆盖,并打开新的 PDF 而不是旧的 PDF?

<小时/>

生成新 PDF 的 C# 代码,该新 PDF 与以前的 PDF 具有相同的文件名,因此它会覆盖以前生成的 PDF。

//...get data for variables

string path = System.Web.Hosting.HostingEnvironment.MapPath(@"~\DesktopModules\DataManagement\Pdf\" + 0 + ".pdf");

creator.PrintLabels(labels, new labelFormat(), path, startingLabelPosition);

string relativePath = @"\DesktopModules\DataManagement\Pdf\" + 0 + ".pdf";

return relativePath;

我还使用此 jquery/ajax 代码在新窗口中打开新创建的 PDF。

$.ajax({
type: "POST",
url: "DesktopModules/DataManagement/TestService.svc/CreateLabelPdf",
data: JSON.stringify(labelInfo),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data) {
window.open(data.d);
},
error: function(msg) {
alert("Error: " + msg.status);
}
});

最佳答案

当您的请求字符串(尤其是没有参数的请求字符串)没有更改时,可能会发生这种情况。您可以将一个每次都会更改的虚拟参数(例如当前时间戳)附加到您的网址中。

例如:

  url: "DesktopModules/DataManagement/TestService.svc/CreateLabelPdf?dummy="+currentTimeStamp,

关于c# - IE 11 打开旧的覆盖的 PDF 而不是新的 PDF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24083194/

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