Chrome为什么要在包含的Javascript文件后添加查询字符串参数?

时间:2019-04-24 05:13:14

标签: javascript html

我的HTML页面中有一个javascript文件,如下所示:

<script type="text/javascript" src="javascript\pages\page.js"></script>

在chrome网络调试器中,当我查看加载的内容时,它具有:

http://localhost:12639/javascript/pages/page.js?_=1556081859333

这是有问题的,因为我不希望该特定文件绕过缓存。 如果有所不同,则表示正在通过AJAX调用加载html文件。

该字段的值在我看来就像一个时间戳。甚至只是一个随机数。关于它如何到达那里的任何猜测?

编辑:以下是AJAX调用代码,它将检索HTML结果:

$.ajax({
            url: 'process.php',
            type: 'POST',
            datatype: "json",
            async:true,
            data: {
               //some data
            },
            error: function (jqXHR, textStatus, errorThrown) {
                console.log(textStatus, errorThrown);
            },
            success: function (data) {
              $("#somediv").html(data);
            }
        });    

1 个答案:

答案 0 :(得分:3)

不幸的是,问题是jQuery。来自他们的docs

  

缓存(默认值:true,对于数据类型'script'和'jsonp'为false)

     

类型:布尔值

     

如果设置为false,将强制浏览器不缓存请求的页面。 注意:将缓存设置为false只能与HEAD和GET请求一起正常使用。 它可以通过在GET参数后面附加“ _ = {timestamp}”来工作。对于其他类型的请求,则不需要此参数,但在IE8中,当对GET已请求的URL进行POST时,该参数就不会出现。