分享
 
 
 

Post和Get 的问题解决

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

又是一个朋友的问题,他有一个form,method是get,action里面带了参数,例如:

<form action="test.do?p1=1" method="GET">

<input type="text" size="10" value="2" name="p2">

<input type=submit value="Submit">

</form>

在服务器端,提交以后的信息里面参数p1的值没有了!

如果把method修改为POST方式就没有问题了;又或者把form里面的那个input输入框去掉,那么p1也有值了。

很奇怪吧。

目前还不清楚是浏览器导致这种问题还是有规范约定这种处理方式。我的感觉是有规范进行这种约定,然后浏览器就把form的内容转换为一个URL,例如例子的情况,浏览器就把请求的 URL转换为test.do?p2=2了,忽略了action原先带的参数p1.而如果是POST方式,那么浏览器就不用做转换,直接提交了。

没有办法,我们只能接受这个事实。

所以如果你的参数很多,有很多是动态的,需要用户输入的,那么很简单,用POST方式吧。其实绝大多数form都是应该使用POST的。GET方式一般都是在使用链接的时候所使用的方式。

另外提醒一点的是,GET方式下URL的长度是有限制的,好像是1024个字符。另外GET的设计初衷应该是每次请求的返回结果都是相同的,而POST是用于对服务器进行更新操作。

看到一个讲解这个问题很详细的英文文章,有兴趣的自己看看:Methods GET and POST in Html forms - what‘s the difference?

其中的一段我感觉大家很有必要清楚:

When users revisit a page that resulted from a form submission, they might be presented with the page from their history stack (which they had probably intended), or they might be told that the page has now eXPired. Typical user response to the latter is to hit Reload.

This is harmless if the request is idempotent, which the form author signals to the browser by specifying the GET method.

Browsers typically will (indeed "should") caution their users if they are about to resubmit a POST request, in the belief that this is going to cause a further "permanent change in the state of the universe", e.g. ordering another Mercedes-Benz against their credit card or whatever. If users get so accustomed to this happening when they try to reload a harmless idempotent request, then sooner or later it‘s going to bite them when they casually [OK] the request and do, indeed, order a second pizza, or invalidate their previous competition entry by apparently trying to enter twice, or whatever.

大意就是如果用户查看一个form提交的结果页面,GET方式和POST方式就是告诉浏览器是可以从缓存里面取还是不能从缓存里面取。如果是POST方式,那么应该是重新加载的,不应该从缓存取。如果用户重复提交一个POST方式的form,那么浏览器应该警告用户,因为这个会造成服务器状态的永久变化(例如用你的信用卡重复预定一个匹萨),如果是GET方式,那么浏览器不应该警告用户。

(出处:http://www.knowsky.com)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有