好吧,这是一个很糟糕的问题,因为缺乏再现性,但我真的需要一些建议,所以请容忍我。
我有一个简单的PHP脚本,用于将静态CORS禁用页代理到脚本。页面是一个“PubHTML”版本的谷歌电子表格(“文件发布到Web”选项),内容不时地改变。下面是脚本(一个简单的版本):
// allow CORS to grab data via js
header("Access-Control-Allow-Origin: *");
$pageUrl = 'https://docs.google.com/spreadsheets/....../pubhtml';
// get the page
$curl_session = curl_init($pageUrl);
curl_setopt($curl_session, CURLOPT_RETURNTRANSFER, true);
$proxiedRequestResponse = curl_exec($curl_session);
if($proxiedRequestResponse === false) {
$request_error = curl_error($curl_session);
//# deal with errors, use $request_error
}
curl_close($curl_session);
// send the result
print $proxiedRequestResponse;
蛮基本的,对吧?(简化的是我检查
$_GET
我有几页,但肯定不能混淆)
现在的问题是,在某种程度上,我注意到有时代理响应过时的数据。不仅如此,有时它还提供最新的数据和
之后
(过了一段时间)再回复过时的数据!(显示数据的状态
老的
之前已经展示过的那个)
我确信电子表格中的数据没有被颠倒过来。我已经看到最新的页面,并打开了它的版本,它显示了过时的数据;我试着刷新它,只是有时候它使它更新了。
我试着给这个URL添加一个时间戳查询:
$pageUrl = '.....'.'?noCacheTimestamp='.date('mdYHis');
还添加了
curl_setopt($curl_session, CURLOPT_FRESH_CONNECT, TRUE);
但仍然以任意顺序获取最新或过时的数据。
这真的很奇怪,所以任何关于为什么会发生这种情况或如何修复(或调试)这种情况的指针都是非常受欢迎的。