GET和POST的几个注意的地方

很久没写博文了,今天就稍分析下表单提交的GET和POST的细节问题

<form method="get"> vs <form method="post">

这两种不同的方式都可以完成同样的事情,就是提交表单,但是在具体环境下,会有很多差异。

用GET提交表单,如果表单的字段比较多,URL比较长,一个比较长的URL通常需要更多的DNS解析时间,有次一个URL长度接近400个字符,在谷歌浏览器打开比较慢,后来把提交方式改为POST提交,页面一点就打开了,这说明缩短了很多的DNS解析时间。

POST提交,比GET更加安全,如果你提交一个表单,包含用户名和密码,如果用户在URL中看到自己的用户名、密码等信息,就会认为这不是很安全的。

POST提交而且可以没有数据长度的限制。

如果一个页面提交到另外一个页面,用POST方式提交,在另外一个页面按F5刷新,就会提示是否重新发送数据,这点对于用户体验来说不是很好的。

刚才说的一个页面,应该不是表单包含在iframe里面,如果表单包含在iframe里面,就又不同了

比如一个页面form.jsp


<iframe src="formdata.html"></iframe>


formdata.html


<form name="rcvForm" action="receivedata.jsp" method="post" target="_blank">
<input type="hidden" name="account" value="xyh"/>
<input type="button" value="提交" onclick="document.rcvForm.submit()"/>
</form>


用户通过提交打开页面receivedata.jsp,就会发现F5刷新下页面,表单参数比如name="account"全部丢失了,没有那个重新发送数据的对话框。

怎么修改,把formdata.html的post改成get


<form action="receivedata.jsp" method="get" target="_blank">
<input type="hidden" name="account" value="xyh"/>
<input type="button" value="提交" onclick="document.rcvForm.submit()"/>
</form>


或者把formdata.html的修改提交方式,把从iframe提交升到form.jsp去提交


<form action="receivedata.jsp" method="get" target="_blank">
<input type="hidden" name="account" value="xyh"/>
<input type="button" value="提交" onclick="window.frames[0].document.form[0].submit();""/>
</form>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值