一个有趣但很难追踪的页面重复提交问题

来源:互联网 发布:c语言快速排序 编辑:程序博客网 时间:2024/05/11 05:17

      今天在oobbs的开发过程遇到一个非常奇怪的问题:发现在请求一个页面时,后台总是调用两次。具体情况是:当浏览器请求:http://localhost:8080/oobbs/site/getAllForumGroups.action,将会调用后台的Action加载所有ForumGroup对象,并在forumGroupList.jsp中生成视图返回。但是实际运行时发现浏览器总是发出两次请求,其中第二次的请求路径与第一次唯一不同的是它后面有一个“#”,而后台也会相应地执行两次,但是页面不会刷新两次。经过仔细的排查发现:原来在页面上有个地方需要引用一个图片,因为暂时不没有这个图片,我临时把img的src属性调成了“#”,这样,当浏览器请请求到这个页面并解析到这个img标签时,会再次发送一个http请求用来获取这个图片,而请求的路径正是当前路径:http://localhost:8080/oobbs/site/getAllForumGroups.action再加上这个“#”,这个请求到达后台依然会委派到action上执行!这就是为什么后台跑了两次!