使用a标签或form的submit做下载按钮,然后通过js调用其click事件去下载时经常出现的异常
2012-09-24 16:01
507 查看
异常:
1:如果使用a标签,通常会直接将超链接的href设为下载地址,然后通过js调用其click事件去实现下载,经常出现以上异常。因为当我们点击的时候本身超链接的href本身应经定向到下载地址,而后而后js有调用了a的click事件导致了又执行了一次href所以出现两次下载请求,抛出连接被重置的异常
2:若在form里用了脚本提交,而在那个Form里面又用了submit了,这样会重复提交也会导致这种问题的。
注意:为了避免以上两种情况出现,我们最好使用button做下载按钮
3:可能防火墙或服务器连接数过小被使用完未关闭,也会导致该异常
ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:366) at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:432) at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:347) at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:392) at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:381) at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:89) at com.joejoe.utils.IOUtils.write(IOUtils.java:62) at com.joejoe.utils.IOUtils.write(IOUtils.java:48) at com.tqsoft.wdys.other.getMegavideo.doGet(getMegavideo.java:79) at javax.servlet.http.HttpServlet.service(HttpServlet.java:627) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.joejoe.utils.web.CharSetFilter.doFilter(CharSetFilter.java:39) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) at java.lang.Thread.run(Unknown Source) Caused by: java.net.SocketException: Connection reset by peer: socket write error at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(Unknown Source) at java.net.SocketOutputStream.write(Unknown Source) at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:750) at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:432) at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:347) at org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:773) at org.apache.coyote.http11.filters.IdentityOutputFilter.doWrite(IdentityOutputFilter.java:118) at org.apache.coyote.http11.InternalOutputBuffer.doWrite(InternalOutputBuffer.java:583) at org.apache.coyote.Response.doWrite(Response.java:560) at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:361) ... 27 more
1:如果使用a标签,通常会直接将超链接的href设为下载地址,然后通过js调用其click事件去实现下载,经常出现以上异常。因为当我们点击的时候本身超链接的href本身应经定向到下载地址,而后而后js有调用了a的click事件导致了又执行了一次href所以出现两次下载请求,抛出连接被重置的异常
2:若在form里用了脚本提交,而在那个Form里面又用了submit了,这样会重复提交也会导致这种问题的。
注意:为了避免以上两种情况出现,我们最好使用button做下载按钮
3:可能防火墙或服务器连接数过小被使用完未关闭,也会导致该异常
相关文章推荐
- form.js插件 利用ajaxSubmit上传文件时ie总出现下载提示框
- 史上最全的CSS hack方式一览 jQuery 图片轮播的代码分离 JQuery中的动画 C#中Trim()、TrimStart()、TrimEnd()的用法 marquee 标签的使用详情 js鼠标事件 js添加遮罩层 页面上通过地址栏传值时出现乱码的两种解决方法 ref和out的区别在c#中 总结
- IE (6-11)版本,在使用iframe的框架时,通过a标签javascript:; 和js跳转parent.location的时候 出现在新页面打开的情况
- 使用jquery.form.js的ajaxsubmit方法提交时参数file标签有值报JS错误
- form 通过js 调用 form名字 .submit(); 有时失效 ***.submit is not a function 需注意
- js “+” 连接字符串&数字相加 数字相加出现多位小数 函数调用单引号双引号嵌套和转义字符的使用
- android使用include标签出现nullpointer异常
- 开发日志:onclick调用js方法传递多个使用struts标签获取的参数
- ASP.NET MVC 使用jquery.form.js 异步上传 在IE下返回值被变为下载的解决办法
- 关于打包自定义标签,并导入项目使用时,出现java.lang.NoClassDefFoundError: JspException异常,解决方法和注意事项!
- 使用SUI mobile 通过a标签跳转到新页面 js文件不加载问题
- 使用JS调用迅雷下载网站本地视频,生成迅雷下载链接
- JS如何调用隐藏按钮的click事件
- 使用jquery.form.js 进行表单提交,通过回调函数实现页面互动
- WebView使用(内存泄露+获取网页标题+js交互+调用浏览器下载文件+网页加载失败+清缓存)
- 解析:使用easyui的form提交表单,在IE下出现类似附件下载时提示是否保存的现象
- javascript在form表单中使用button按钮实现submit提交方法
- Html中a标签的使用(下载及设计成按钮)
- 使用HttpWebRequest下载远程文件部分网站出现异常
- 前段html通过js拼接url?name=XXX&gender=XXX,然后调用jQuery的ajax,往后台传参数,前端alert参数是正常的,后端的参数是乱码