为啥每次刷新后页面都会自动提交表单?

Chronicle 2010-08-18 09:55:40

表单为form1 ,action为提交给自身.

提交后再刷新网页就会弹出 是否重新发送内容的对话框,如果选择"重试",那么上一次提交的内容就会被重复提交.


求解决的方法.
...全文
1514 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
99percent 2010-08-24
  • 打赏
  • 举报
回复
是不是你在那个页面做删除增加的代码没有判断好.一刷新就检测条件通过就不断产生同一动作.
shicx 2010-08-23
  • 打赏
  • 举报
回复
支持8楼
半山闲人 2010-08-23
  • 打赏
  • 举报
回复
在处理完提交数据后,用Response.Redirect跳转回本页,这个在表单提交到本页时是很有必要的
l83203808 2010-08-23
  • 打赏
  • 举报
回复
asp 我一直用的都是8楼的方法
wangccddaa 2010-08-23
  • 打赏
  • 举报
回复
路过,支持4楼的
asdevil520 2010-08-22
  • 打赏
  • 举报
回复
你可以在input里加name值
如:<input type="submit" name="send" value="提交" />
然后在
<%
if request.form("send") = "提交" then
才执行代码......
end if
%>
Dogfish 2010-08-19
  • 打赏
  • 举报
回复
因为页面重复刚才的动作。所以完成提交后,最好把页面跳转了,就不会有这样的问题了。
javabm 2010-08-19
  • 打赏
  • 举报
回复
进来学习
number123456 2010-08-19
  • 打赏
  • 举报
回复
因为你提交到本页面,所以你提交后的本页面相当于POST接收页,再刷新肯定被视为再次处理一回了,所以,当你处理完信息后,你要跳转一下,哪怕还是本页面,你也要重新跳转一下才可以,
一般处理完表单 后,都会有提示,然后跳转。
Response.write "<script language=javascript>"
Response.write "alert('提交成功');location.href='?';"//问号相当于本页面,但是如果你本页面是有参数的话就不行了
Response.write "</script>"
Response.end//最后别忘了终止程序,要不然又会显示其它的东西了
gougouyou 2010-08-19
  • 打赏
  • 举报
回复
顶一下,每天回帖即可获得10分可用分!
cjfriends 2010-08-19
  • 打赏
  • 举报
回复
顶4楼,5楼的
还可以用 response.Redirect 跳转
chen_bruce 2010-08-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 dogfish 的回复:]
因为页面重复刚才的动作。所以完成提交后,最好把页面跳转了,就不会有这样的问题了。
[/Quote]顶
你在提交完后可以用window.location.href='自身文件名'就不会出现这种情况了
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 chronicle 的回复:]
引用 2 楼 gzpydc 的回复:
试试在ASP文件开始的地方加入下面的语句,看能不能解决,这4句语句主要是清空缓存记录的。

VBScript code

<%
Response.Buffer = True
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.CacheControl = "no……
[/Quote]


他保存的不只是信息内容啊,表单提交的动作他也包括了啊,你可以加添加成功的时候加一个返回范尼给钱页的动作,这样他就不会保存了

比如
response.write "<script>location.href='index.php';</script>"
response.end
类似这样的语句
Chronicle 2010-08-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 gzpydc 的回复:]
试试在ASP文件开始的地方加入下面的语句,看能不能解决,这4句语句主要是清空缓存记录的。

VBScript code

<%
Response.Buffer = True
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.CacheControl = "no-cache"
……
[/Quote]
没有用...

[Quote=引用 1 楼 chinmo 的回复:]
那肯定的,因为你有缓存,你在当前页提交以后,缓存着刚才上一个动作的内容
当然还会继续执行啊
[/Quote]
正如你所说保存的仅仅是内容,但是我刷新的时候并没有执行提交表单这个动作

能不能简单讲解一下缓存作用过程
gzpydc 2010-08-18
  • 打赏
  • 举报
回复
试试在ASP文件开始的地方加入下面的语句,看能不能解决,这4句语句主要是清空缓存记录的。


<%
Response.Buffer = True
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.CacheControl = "no-cache"
%>
  • 打赏
  • 举报
回复
那肯定的,因为你有缓存,你在当前页提交以后,缓存着刚才上一个动作的内容
当然还会继续执行啊

28,409

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧