服务器上的文件更改了内容,但是js仍会获取旧数据

时间:2019-07-17 19:51:48

标签: javascript php fetch

因此,我制作了js脚本,该脚本可从服务器上的文件中获取内容。 我制作了php脚本来更改文件内容,但是当我更改内容时,我的js脚本仍然可以获取旧数据而没有更改,但是服务器上的文件已更改。 即使刷新页面,JS仍会获取旧数据。 怎么了?

我尝试使用fopen代替file_puts_contents,但是js仍然获取旧数据。 我还尝试了使funcion异步,但是没有任何改变。

getListFromApi=()=>{
 let json = []
 $.ajax({
   url: 'https://mypage.pl/list.json',
   async: false,
   dataType: 'json',
   success: function(data){
     json = data
   }
 })
 return json
}

2 个答案:

答案 0 :(得分:1)

浏览器将缓存其结果,这意味着如果您多次请求相同的URL,则每次都将仅使用第一个结果来加快获取速度。看来您使用的是jQuery(正确吗?),在这种情况下,您可以通过将cache: false添加到请求对象中来禁用缓存。

答案 1 :(得分:0)

您可以添加一个cache: false之类的IceMetalPunk答案,但是您也可以在网址中添加查询字符串,这样浏览器就不会缓存您的响应数据。使用时间戳查询字符串,可以确保在所有环境中

    getListFromApi=()=>{
     let json = []
     $.ajax({
       url: 'https://mypage.pl/list.json?nocache',
       async: false,
       cache: false,
       dataType: 'json',
       success: function(data){
         json = data
       }
     })
     return json
    }