繁体   English   中英

ajax请求给出不需要的响应

[英]ajax request giving unwanted response

我有一个html页面index.htm ,其中有一个链接,该链接通过ajax请求将divs传递到另一个html zoom.htm ,并将其附加到正文中,但是当我在zoom.htm进行更改时,更改不会反映, zoom.htm其诸如zoom.htm类的zoom.htm保存在某个位置(已缓存),并从已缓存(我不知道其是否真正缓存)页面的div中获取div。 即使我从项目中删除了zoom.htm,它仍在显示其内容。

$.get('zoom.htm', function(html) {
 $(html).hide().appendTo('body').fadeIn(500);
}, 'html');
  1. 每次发出请求时,如何获得zoom.htm的新副本。
  2. 当我将zoom.htm替换为zoom.jsp(这是我想做的,但我正在用html页面进行测试)时,它无法正常工作(所有html与zoom.htm相同)。

为了防止获取缓存的响应,您只需通过添加时间戳等方法来确保每次使用的网址都是唯一的:

'zoom.htm?' + new Date().getTime()

尝试检查调试器,是否正在从缓存中获取响应。 在Chrome开发者工具中,通常将它们标记为“(来自缓存)”。 在Chrome中,您也可以强制禁用缓存。 打开开发人员工具,然后单击右下角的齿轮。 然后将显示一个覆盖图。 点击“禁用缓存”。 进一步的请求将不使用缓存的对象。

另外,如果您使用某种类型的CMS,则可以禁用服务器端缓存(如果可以选择禁用)


另一方面...您是否在编辑正确的文件? 您可能正在编辑文件的副本,而不是正在尝试检索的副本。 一直发生在我身上。

测试zoom.htm beeing是否是缓存版本的最简单方法是清除浏览器缓存。 例如,在Firefox中,“编辑>首选项>高级:缓存的Web内容=>立即清除”。

然后,假设您的服务器类似于Apache,则可以防止浏览器使用Header指令(例如,在项目目录中创建.htaccess文件)来缓存zoom.htm文件:

<filesMatch "\.(html|htm|js|css)$">
    FileETag None
    <ifModule mod_headers.c>
        Header unset ETag
        Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
        Header set Pragma "no-cache"
        Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
    </ifModule>
</filesMatch>

askapache中所示 希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM