form表单提交的时候,action里的值Get参数问题。
我记得以前写form表单的时候,有些参数我直接写在了action
链接里面,但是提交之后获取不到,于是我就把这些参数写在了type=hidden
的input标签里。
但是最近在写form表单的时候,突然发现action
链接里面带着的get
参数是可以传过去的。
这让我很困惑,因为我之前查资料的时候看到,在action中的参数是会被url encode
,不能用,所以一直都是用input
来传,现在突然发现可以用。所以我想问一下,到底什么情况下form
表单action
中的参数可以传过去,什么时候不可以传?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
当form提交方式为get的时候,组件里填写了value的值,action里的url后也带有参数(写死的),这时servlet获取的uesrName和passWord是文本组件里的值
当form提交方式为post的时候,组件里填写了value的值,action里的url后也带有参数(写死的),这时servlet获取的uesrName和passWord是url后参数的值
建议你参考一下这个答案,http://www.cnblogs.com/gwq369...
通俗一点,像
a=x1&b=x2&c=x3
并且跟在url之后以?
开头如
http://domain.com/?a=x1&b=x2&c=x3
,我们称之为QueryString
在php中通过
$_GET
超全局数组获得另外并不是说
url encode
就不能用,有encode
就有decode
。form
表单有两种提交方式,一种GET
,一种POST
使用
GET
方式的时候,目的URL就会被组成QueryString
的形式去访问目的页面。你可以观察下,点击提交按钮的时候,URL有什么不同
因为你的提交方式不同
form 表单 action 的 url 带上一些参数 ?a=b 等,我的理解是,不管是POST 还是 GET 方法,都是可以被传递,被后端接受的。
唯一要注意的就是,如果是 POST 方法 ,action.php?a=b,但是表单里也有 a 这个字段,看看会使用哪一个值
上面的答案都没有回答楼主的问题。
当form提交且method为
get
时,url中?
后面的参数都会被舍弃,挺坑爹的。而用post
提交时则会url中的参数会正常接收到。可以参考:submitting a GET form with query string params and hidden params disappear