window.location.reload与window.location.href
2015-10-21 22:39
525 查看
今天遇到一个bug。
A页面有一个form表单,表单post提交之后,服务器会返回B页面,B页面会有一个ajax请求,ajax请求成功的回调函数callback中,会刷新当前页面。
问题就在于,在B页面的callback中使用window.location.reload()去刷新当前页面,那么在服务器端会收到A页面中的form表单的请求。
问题描述
A页面和B页面只是页面状态不同,但是属于同一个url。A页面有一个form表单,表单post提交之后,服务器会返回B页面,B页面会有一个ajax请求,ajax请求成功的回调函数callback中,会刷新当前页面。
问题就在于,在B页面的callback中使用window.location.reload()去刷新当前页面,那么在服务器端会收到A页面中的form表单的请求。
原因分析
因为从A页面到B页面是服务器端实现的跳转,浏览器没能察觉,因此依然缓存的是A页面,那么在B页面中使用window.location.reload进行刷新的时候,提交的依然是A页面。解决方法
使用window.location.href=window.location.href,这种不是通过浏览器的刷新按钮去实现刷新的,而是通过替换url地址实现刷新的,这样相当于重新向服务器发了一次请求。相当于无缓存刷新。相关文章推荐
- 原生js自动触发事件
- jsp学习-分页功能的实现
- js中innerHTML和outerHTML的相同与不同
- js开发过程中遇到的一些问题
- 如何在HTML中嵌入JavaScript
- JavaScript-- prototype原型和原型链详解
- 你不知道的JavaScript--Item17 循环与prototype最后的几点小tips
- js的字符串替换函数replace
- 你不知道的JavaScript--Item17 循环与prototype最后的几点小tips
- json对象与字符串之间的互转
- 你不知道的JavaScript--Item16 for 循环和for...in 循环的那点事儿
- 你不知道的JavaScript--Item16 for 循环和for...in 循环的那点事儿
- 201510212059_《JavaScript——八种转义符》
- EXTJS表格功能扩展 之 有状态表格StatefulGrid
- JavaScript中的this含义
- js的倒计时 服务器时间与本地时间不一致
- 5 个JavaScript调试技巧
- 如何解析key为数字的string类型的Json数据
- (转载)iscroll.js的使用
- 【D3.js数据可视化实战】--(2)本地时间轴