ajax的get请求时缓存处理解决方法_AJAX相关

本文实例讲述了ajax的get请求时缓存处理解决方法。分享给大家供大家参考。具体分析如下:

很多时候在Ajax的get方法调用的时候由于缓存的原因无法及时获取正确的数据,这里就来分析一下解决这一问题的方法:

1. 在url后面添加一个随机数,如:

复制代码 代码如下:

http://www.test.com?a=a&b=b&r=Math.random();

2. 在url后面添加时间戳:

复制代码 代码如下:

var t = new Date().getTime();
http://www.test.com?a=a&b=b&t=t

3. 利用XMLHttpRequest对象的setRequestHeader函数来设置If-Modified-Since的值为0,如

复制代码 代码如下:

xmlHttp.setRequestHeader('If-Modified-Since', 0);

这里要理解If-Modified-Since的含义

4. 使用php的header函数

复制代码 代码如下:

header('Cache-Control:no-cache, must-revalidate');

设置不使用缓存

希望本文所述对大家的Ajax程序设计有所帮助。

时间: 2024-09-23 10:04:56

ajax的get请求时缓存处理解决方法_AJAX相关的相关文章

ajax的get请求时缓存处理解决方法

本文实例讲述了ajax的get请求时缓存处理解决方法.分享给大家供大家参考.具体分析如下: 很多时候在Ajax的get方法调用的时候由于缓存的原因无法及时获取正确的数据,这里就来分析一下解决这一问题的方法: 1. 在url后面添加一个随机数,如:复制代码 代码如下:http://www.test.com?a=a&b=b&r=Math.random(); 2. 在url后面添加时间戳: 复制代码 代码如下:var t = new Date().getTime(); http://www.te

ajax传送参数含有特殊字符的快速解决方法_AJAX相关

JQuery AJAX中遇到这样一个问题,参数中包含特殊字符,比如&'#@等, 这时执行AJAX的时候就会出问题,因为所传的参数变了.看个示例就明白: 方案一: $.ajax({ url: '/ashx/ajax.ashx', type: 'post', data: 'option=delete&name=11&adb, success: function (data) { if (data != 'error ') { } } }); ' 上面执行的ajax就是异步删除一个nam

有关Ajax跨域问题的两种解决方法_AJAX相关

概述 Ajax跨域是前端开发中常见的问题,本文描述了以Google浏览器Chrome作为客户端和以Tomcat作为Web服务器的情况下的解决办法. 问题现象 当出现跨域访问的时候ajax通常会报类似如下错误: XMLHttpRequest cannot load http://192.168.2.12:8001/oss/api/version/check. No 'Access-Control-Allow-Origin' header is present on the requested re

ajax的responseText乱码的问题的解决方法_AJAX相关

关于ajax的responseText乱码的问题这个问题让我和纠结百度了好多都说是javascript的编码问题但是我的 javascript的编码是和myeclipse一样的为什么还会出现问题.最后猜测可能是服务端没有设置返回的字符的 返回类型.只需在服务端加上 复制代码 代码如下: response.setcontentType("text/html") response.setcharacterEncoding("charset")返回的字符编码是类型.

使用jquery 的ajax调用总是错误亲测的解决方法_AJAX相关

使用jquery 的ajax功能调用一个页面,却发现总是出现错误. js代码如下 复制代码 代码如下: $.ajax({ type: 'post', url: 'TestData.aspx', data: { language_type: 'cn'}, dataType: 'json', success: function (data) { alert('ok'); }, error: function (data) { alert('err'); }); } TestData.aspx代码如下

Ajax发送和接收二进制字节流数据的方法_AJAX相关

HTML5 Ajax 2.0标准中,增强了Ajax的许多功能,包括发送FormData数据,上传数据进度条等诸多功能.但实际上,Ajax可以字节发送二进制数据. 发送二进制数据 var oReq = new XMLHttpRequest(); oReq.open("POST", url, true); oReq.onload = function (oEvent) { // Uploaded. }; var blob = new Blob(['abc123'], {type: 'tex

按钮的Ajax请求时一次点击两次提交的解决方法_AJAX相关

页面中的按钮的type是submit的: <input type="submit" value="Create" id="submit" /> ajax的请求,在JQuery中是: $(function () { $('#submit').click(function () { var createGenreForm = $('#createGenreForm'); if (createGenreForm.valid()) { var

ie发送ajax请求返回上一次结果的解决方法_AJAX相关

问题出现原因: 1. ie下面只会建立一次 ajax 请求,将响应结果放在浏览器缓存里 下次调用该ajax请求时 从缓存里读取 get方式时,获取数据,因发送参数和地址都一致,故IE浏览器会从缓存中取,而不会去请求服务器端,而post方式因为参数的不同,不会产生这个问题 2. 火狐下面 每次激活事件 都会重新建立一次ajax请求 解决方法: 1: 在AJAX请求的页面后加个随机函数,我们可以使用随机时间函数 在javascript发送的URL后加上t=Math.random() 例如这样:URL

ajax请求成功后新开窗口window.open()被拦截解决方法_AJAX相关

问题: 前面开发项目时碰到一个问题,ajax 异步请求成功后需要新开窗口打开 url,使用的是 window.open() 方法,但是很可惜被浏览器给拦截了,怎么解决这个问题呢? 分析: 浏览器之所以拦截新开窗口是因为该操作并不是用户主动触发的,所以它认为这是不安全的就拦截了(不过如果是 _self 的话就不会有这个限制),即使 ajax 回调函数中模拟执行 click 或者 submit 等用户行为(trigger('click')),浏览器也会认为不是由用户主动触发的,因此不能被安全执行,所