gpt4 book ai didi

caching - VBScript:禁用从服务器到 HTTP GET URL 请求的响应缓存

转载 作者:行者123 更新时间:2023-12-04 01:53:10 24 4
gpt4 key购买 nike

当从 Windows 机器上的应用程序中运行的 VBScript 对服务器进行 URL 调用时,我想关闭缓存。我用什么函数/方法/对象来做到这一点?

当第一次调用时,我的基于 Linux 的 Apache 服务器从它正在运行的 CGI Perl 脚本返回一个响应。但是,脚本的后续运行似乎使用与第一次相同的响应,因此数据被缓存在某处。我的服务器日志确认服务器在随后的时间没有被调用,只是在第一次。

这就是我正在做的事情。我在商业应用程序中使用以下代码(不想提及这个应用程序,可能与我的问题无关):


With CreateObject("MSXML2.XMLHTTP")
.open "GET", "http://myserver/cgi-bin/nsr/nsr.cgi?aparam=1", False
.send
nsrresponse =.responseText
End With

上述对象上是否有关闭缓存的函数/方法,或者我是否应该在创建 URL 之前调用方法/函数来关闭响应对象上的缓存?

我在这里寻找解决方案: http://msdn.microsoft.com/en-us/library/ms535874(VS.85).aspx - 不够有帮助。在这里: http://www.w3.org/TR/XMLHttpRequest/ - 非常不友好且难以阅读。

我还尝试使用 http header 设置和 html 文档 header 元数据强制不使用缓存:

将响应返回给调用客户端的服务器端 Perl CGI 脚本的片段,将 expiry 设置为 0。

print $httpGetCGIRequest->header(
-type => 'text/html',
-expires => '+0s',
);

响应发送回客户端的 Http header 设置:

<html><head><meta http-equiv="CACHE-CONTROL" content="NO-CACHE"></head>
<body>
response message generated from server
</body>
</html>

上面的 http header 和 html document head 设置没有用,因此我的问题。

最佳答案

如果您可以控制 XMLHTTP 请求所针对的应用程序(在您的情况下是这样),您可以让它在响应中发送无缓存 header 。这解决了我的问题。

Response.AppendHeader("pragma", "no-cache");
Response.AppendHeader("Cache-Control", "no-cache, no-store");

作为替代方案,您还可以将包含随机数的查询字符串附加到每个请求的 url。

关于caching - VBScript:禁用从服务器到 HTTP GET URL 请求的响应缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3055475/

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