1

我正在尝试获取两个不同的资源,它们位于相同的 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?

4

1 回答 1

0

在 dataType 中,替换"application/json""json"和。 jQuery仅将以下内容识别为有效输入:"text/html""html"

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

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

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

于 2013-02-19T23:24:55.757 回答