当从javascript多次调用时,PHP cURL返回旧数据

时间:2017-05-03 09:10:13

标签: javascript php curl

我试图每隔3秒从服务器更新一个值,但我对以下代码有一个非常奇怪的行为:

PHP函数

<script>
function refreshLocation() { 
    try {
      <?php
        $loc = getLocation('someToken', 'someID');
      ?>
      pos = [<?php echo '"'.implode('","',$loc ).'"' ?>];
      pos[0] = parseFloat(pos[0].replace(",", "."));
      pos[1] = parseFloat(pos[1].replace(",", "."));
      console.log("Loc:" + pos[1] + " : " + (pos[0]));   
    }
    catch(err) {
    }
    setTimeout(refreshLocation, 3000);
  }
  </script>

Javascript电话:

{{1}}

问题是,无论服务器上的值如何变化,getLocation函数总是返回与第一次执行时相同的值。只刷新整个页面会给出一个新值。 我看不出问题,我无法找到令人满意的解决方案。 PHP和javascript有问题我没有意识到吗?

1 个答案:

答案 0 :(得分:1)

您是否使用过第三方Web服务它们可能可以管理具有相同参数和域的相同请求的缓存。

我的意思是,如果您可以使用相同的参数调用API,并且相同的域服务提供商会返回您在第一次调用时缓存的数据。

您需要通过&#34; 缓存控制:无缓存&#34;在cUrl调用的标题中

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    "Authorization: Bearer $key",
    "Cache-Control: no-cache",
));