所以我想通过使用Microsoft.XMLHTTP ActiveXObject来检索一些经常从Windows小工具更改的JSON数据。问题是它返回页面的缓存版本而不是请求新版本。
我无法控制服务器,我无法使用通常的黑客发送额外参数,因为如果我发送任何参数,服务器会返回错误。
我已经将这个搜索到了死亡,最好的信息在this Stackoverflow问题中,但这些答案都不适用于我;我无法找到从小工具Javascript使用ServerXMLHTTP的方法。如何使用ServerXMLHTTP,或者以不同于在URL中添加随机参数的方式阻止缓存?
答案 0 :(得分:3)
尝试使用POST而不是GET
request = new ActiveXObject("Microsoft.XMLHTTP");
request.onreadystatechange = callback;
request.open("POST", "server.php", true);
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
request.send();
的引用: Prevent Chrome from caching AJAX requests 和我自己的经历。
答案 1 :(得分:0)
您是否可以在网址末尾添加随机元素?
你的http://acme.com/someapp/rest/someendpointurl?randombit=20171701143500
答案 2 :(得分:0)
在VBA中添加一个随机数对我有用,例如
myURL= "http://acme.com/someapp/rest/someendpointurl?randombit=" & Rnd()
Dim WinHttpReq As Object
Set WinHttpReq = CreateObject("Microsoft.XMLHTTP")
WinHttpReq.Open "GET", myURL, False, "username", "password"
WinHttpReq.send
myURL = WinHttpReq.responseBody
If WinHttpReq.status = 200 Then
Set oStream = CreateObject("ADODB.Stream")
oStream.Open
oStream.Type = 1
oStream.Write WinHttpReq.responseBody
oStream.SaveToFile saveToPath, 2 ' 1 = no overwrite, 2 = overwrite
oStream.Close
End If
谢谢Sean Cull,您的解决方案在VBA的背景下对我有用。
(遗憾的是我不允许投票,所以在这里重新发布以供参考)