文件下载时对象拒绝访问的错误

来源:互联网 发布:php 阿里云短信发送 编辑:程序博客网 时间:2024/05/16 06:34

文件下载时对象拒绝访问的错误

yaogao@gmail.com

JSP下载文件是非常方便的,我们只需要在response设置一下头,然后往里头写内容就可以了,可是往往就是80%的时间会要花费在20%的事情上面,有时候甚至更多时间浪费了,那就是点击下载Button,文件保存到本地之后,再点击下载Button就出现“对象拒绝访问”的JavaScript错误。

出现这样的错误的原因是因为点击下载Button之后,被提交的formtarget默认是本画面,由于下载之后,当前页面的对象被销毁,于是不可以再访问(个人理解,如果有更好的理解,而且其中的原因不得而知,非常感谢告诉我)。解决的办法就是提交的时候,将formtarget指向其他地方,如下图:

指向Menu部分的target1,这样提交并且文件下载之后,当前页面对象就不会被销毁,可以连续多次下载。

Target1的实现方法有两种:如果本来就有frame,可以在原有的frameset中添加一个名字叫做target1frame。也可以用IFRAME实现,IFRAME比较灵活,放到可以放的地方都是可以的。

以上的做法对于图中这种有InputCheck的页面还是有问题的,因为提交之后如果InputCheck出错,这时候需要在ErrorMessage这个地方显示错误信息,那么如果把提交的target设置成target1,那么就会在target1这个地方刷新,就乱了,这个时候我能想到的解决办法就是两次提交,第一次提交的时候不设置target,这个时候只做InputCheckInputCheck返回一个Flag,表示有没有错误,在下载页面的onload方法中检测这个Flg,如果没有错误就再次提交,如果有错误就不提交,错误信息会在当前页面上显示。

 

不知道是不是有更好的解决办法,我想肯定有吧!

不过对象拒绝访问这个错误只在IE6SP2之前的版本会出现,看来也是浏览器的BUG阿。

 
原创粉丝点击