【问题标题】:jQuery getScript function adds search parameter and a 404 error is thrownjQuery getScript 函数添加搜索参数并抛出 404 错误
【发布时间】:2013-09-22 15:04:53
【问题描述】:

我使用getScript() jQuery function导入Bootstrap 3 js文件:

$.getScript("//netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js");

我不明白为什么 jQuery 会在 url 中添加搜索参数,结果是 404 - Not found 错误:

GET http://netdna[...]/3.0.0/js/bootstrap.min.js?_=1379832218975 404 (Not Found) 
// Why does this parameter appear? -------------^^^^^^^^^^^^^^^^

我创建了一个 JSFIDDLE 来演示这一点。

我该如何解决?

【问题讨论】:

标签: javascript jquery twitter-bootstrap


【解决方案1】:

jQuery.ajax 为 ajax 调用附加一个查询字符串,以防止缓存,并带有当前的 unix 时间戳。默认情况下,jQuery.getScript 将设置此标志。

$.ajaxSetup({
  cache: true
});

jQuery.ajax settings

【讨论】:

  • $.getScript() 默认设置cache:false,您可以在docs 中查看。
  • 对不起,我不得不先发布一个简单的答案,因为你们对我来说太快了,我就像......“哦,我知道这个。”
  • 是的,不用担心。 @Rikard 看到它与链接的欺骗问题和之前链接的 $.getScript docs 中的解决方案完全相同,如果它不起作用,我会感到惊讶。好吧,稍微改变一下主题,CDN 仅仅因为查询字符串参数而无法加载资源已经有点令人惊讶了,猜想这与他们的后端路由有关。
  • @FabrícioMatté 这将是最好的微优化。
  • @Shea 谈论他们的后端还是与答案有关?我已经从您的回答中删除了几个误导性的部分(暗示 OP 在某处有 cache:false),因为实际上 $.getScript 是罪魁祸首(在我的第一条评论中链接到文档)。
猜你喜欢
  • 1970-01-01
  • 2020-05-01
  • 2015-09-28
  • 1970-01-01
  • 2010-10-16
  • 1970-01-01
  • 1970-01-01
  • 2021-12-03
  • 2013-02-10
相关资源
最近更新 更多