【问题标题】:Browser caching Requests with different Datatypes浏览器缓存不同数据类型的请求
【发布时间】:2013-01-09 16:06:19
【问题描述】:

我正在尝试获取两个不同的资源,它们位于同一个 URI,但具有不同的数据类型。

$.ajax({
  dataType: "application/json",
  url: "http://www.myApp.com/resource",
  success: f
});

$.ajax({
  dataType: "text/html",
  url: "http://www.myApp.com/resource",
  success: f
});

但是第二个调用永远不会离开浏览器。第一次调用的结果被缓存并返回给第二次调用。 但它有错误的数据类型! json 与 html。 不知道是jquery缓存还是浏览器(chrome)缓存?

有没有办法让它工作?我需要资源的两种表示形式。 我可以在请求中将缓存设置为 false,但这样我就会失去缓存的好处。

或者我是否必须为不同的表示定义两个不同的资源 URI?

【问题讨论】:

    标签: jquery json http caching


    【解决方案1】:

    在 dataType 中,将 "application/json" 替换为 "json",将 "text/html" 替换为 "html"jQuery recognizes 仅以下作为有效输入:

    • xml
    • json
    • jsonp
    • html
    • 文字
    • 脚本

    或以上某些内容的空格分隔组合。任何其他值都将导致带有Accept 标头的请求*/*

    此外,您可能希望将 success 回调替换为 $.ajax({...}).done(callback)。回调参数在 1.8 中已弃用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-30
      • 2011-04-20
      • 1970-01-01
      • 1970-01-01
      • 2016-01-11
      • 2010-10-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多