一 现象

get请求在有些浏览器中会缓存。浏览器不会发送请求,而是使用上次请求获取到的结果。

post请求不会缓存。每次都会发送请求。

二 解决

jQuery提供了禁止Ajax请求缓存的方法:

$.ajax({type: "get",url: "http://www.baidu.com?_=",cache: false
});

它的工作原理是在GET请求参数中附加时间戳"_={timestamp}"

三 源码

jQuery.extend( {now: function() { // 获取毫秒数return +( new Date() );}
} );var nonce = jQuery.now(); // 加载jQuery脚本文件时,获取时间戳。使用时每次加一。var rquery = ( /\?/ ); // 检测问号var rts = /([?&])_=[^&]*/; // 检测下划线参数// Add anti-cache in url if needed
if ( s.cache === false ) {s.url = rts.test( cacheURL ) ?// If there is already a '_' parameter, set its value// 如果有下划线参数,就更新它cacheURL.replace( rts, "$1_=" + nonce++ ) :// Otherwise add one to the end// 如果没有下划线参数,就添加它cacheURL + ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + nonce++;
}

转载于:https://www.cnblogs.com/sea-breeze/p/10232081.html

jQuery禁止Ajax请求缓存相关推荐

  1. 使用jQuery在AJAX请求中添加标头

    本文翻译自:Add header in AJAX request with jQuery I would like to add a custom header to an AJAX POST req ...

  2. 关于前端接口 jquery的ajax请求

    关于jquery中ajax请求 一.ajax语法 二. 四种请求方式 1.get请求 2.post请求 2.1 默认格式 2.2 json格式请求 2.3 序列化表单值 2.3 FormData 3. ...

  3. ajax返回的图片数据格式,jquery发送ajax请求返回数据格式

    jquery向服务器发送一个ajax请求后,可以返回多种类型的数据格式,包括:html,xml,json,text等. 1.html格式的数据 " "+username+" ...

  4. jquery中ajax请求后台数据成功后既不执行success也不执行error解决方法

    jquery中ajax请求后台数据成功后既不执行success也不执行error解决方法 参考文章: (1)jquery中ajax请求后台数据成功后既不执行success也不执行error解决方法 ( ...

  5. jQuery 发送 AJAX 请求

    AJAX 请求状态 xhr.readyState 可以用来查看请求当前的状态 参考官方文档的链接:https://developer.mozilla.org/zh-CN/docs/Web/API/XM ...

  6. ajax 请求成功 再执行javascript,jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法...

    jquery中ajax请求后台数据成功后既不执行success也不执行error,此外系统报错:Uncaught SyntaxError: Unexpected identifier at Objec ...

  7. 调用$.ajax不成功,jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法...

    jquery中ajax请求后台数据成功后既不执行success也不执行error,此外系统报错:Uncaught SyntaxError: Unexpected identifier at Objec ...

  8. ajax type是get请求,jQuery的Ajax请求数据时type无法使用GET

    写一个ASP.NET MVC例子,它是使用jQuery的$.Ajax来呼叫控制器的数据. 创建一个视图: 运行结果: 一切正常,但是本例子我们只是获取数据,并没有做任何数据POST上传至控制器,我们尝 ...

  9. ajax.then()用法,使用es6的then()方法封装jquery的ajax请求

    使用场景: jsp页面中使用jquery的ajax请求比较频繁,以前vue框架的项目用过axios,所以就想着用then()封装一个公共请求的方法,这样每次请求就不用那么麻烦的写一大堆请求参数了. 示 ...

最新文章

  1. log4j在javaWeb项目中的使用
  2. MyCAT+MySQL 搭建高可用企业级数据库集群
  3. 读博熬不住了,拿个硕士学位投身业界如何?看过来人怎么说
  4. Redis -- Hash(哈希) [3]
  5. minio 授予永久访问权限_应对 iOS 14 权限管理 应用手把手教你打开“所有照片”权限...
  6. git修改本地仓库和远程仓库名称
  7. 滤波电路对服务器的影响,滤波电路到底有什么作用?
  8. Ubuntu 14.10/15.04/15.10 安装docker
  9. 卡巴斯基7.0离线更新升级包病毒库
  10. 40个使用HDR的超棒夜景摄影照片展示
  11. Vscode python Code Runner中文乱码
  12. 针对自动识别大麦网滑块验证码,提出解决方案,并进行分析、总结
  13. sessionStorage和localStorage
  14. 【原创】带下划线单选菜单栏-标签Tab
  15. bzGhost打造跨平台即时聊天软件之专栏介绍
  16. Mysql 1055错误
  17. 第二章 软件测试基础
  18. 派生BOM (Variant Bom)操作
  19. js 图片下载(不是直接在页面打开图片)
  20. 大数据在政府中的应用案例

热门文章

  1. c语言指针++_C ++此指针| 查找输出程序| 套装3
  2. getdate 日期间隔_日期getDate()方法以及JavaScript中的示例
  3. 如何获取ubuntu源码包里面的源码进行编译
  4. FreeRTOS任务挂起和恢复
  5. 474. 一和零 golang动态规划
  6. redis源码剖析(四)跳表
  7. Linux C语言C++ makefile文件编写
  8. python 库 全局变量_python局部变量和全局变量global
  9. 1080 MOOC期终成绩 (25 分)
  10. Centos 6.x