259
|
Matt Mitchell · 技术社区 · 15 年前 |
![]() |
1
251
你能做的最好的事情就是完全忽略action属性。如果您不填,表格将被提交到文件的地址,即同一页。 也可以将其保留为空,并且任何浏览器实现 HTML's form submission algorithm 将其视为等同于文档的地址,这主要是因为浏览器当前的工作方式:
这在所有当前的浏览器中都是有效的,但在某些较旧的浏览器中可能无法正常工作。( “ browsers do weird things with an empty action="" attribute “ 这就是为什么 the spec strongly discourages authors from leaving it empty :
|
![]() |
2
70
事实上,
Form Submission subsection
当前HTML5草案不允许
中引用的部分 mercator's answer 是否要求 实现方式 不是 作者 . 作者必须遵守作者的要求。引用 How to read this specification :
从HTML4_,允许空URL_,进行了更改,因为__
browsers do weird things with an empty
|
![]() |
3
16
不包括“操作”属性将打开最多 iframe clickjacking 攻击,包括几个简单步骤:
工具书类 |
![]() |
4
15
这将通过HTML5验证。
|
![]() |
5
5
在HTML 5中
如果您完全否定了操作,那么默认情况下它将提交到同一页,我认为这是最佳做法:
如果您使用PHP来汇总表单,您可能需要考虑以下内容。 read more about it here.
或者你可以使用
|
![]() |
6
4
我通常使用action=“”,它是XHTML有效的,并将get数据保留在URL中。 |
![]() |
7
4
我想最好是
明确地
声明表单的发布位置。如果您希望完全安全,请在“操作”属性中输入表单所在的相同URL(如果您希望表单提交回自身)。尽管主流浏览器评估
当然,包括get数据在内的整个URL都指出了这一点。 |
![]() |
8
2
只使用
它不会违反HTML5标准。 |
![]() |
9
1
当我使用经典ASP时,我经常这样做。通常我在需要某种类型的服务器端验证来进行输入时使用它(在Ajax出现之前)。我看到的主要回顾是,它并没有在文件级别将编程逻辑与表示分离。 |
![]() |
10
1
我以前根本不指定动作属性。实际上,我的框架是如何设计的,所有页面都会被提交回相同的地址。但今天我发现了问题。有时我借用动作属性值来进行一些后台调用(我猜有些人会将其命名为Ajax)。所以我发现如果没有指定action属性,那么ie将action属性值保持为空。在我的理解中,这有点奇怪,因为如果没有指定任何动作属性,那么javascript对应的部分必须至少是未定义的。无论如何,我的观点是,在选择最佳实践之前,您需要了解更多的上下文,比如您是否会在JavaScript中使用该属性。 |
![]() |
Dima Malko · 如何在指定符号前添加符号? 2 年前 |
![]() |
shekharsabale · 从列表元素捕获子字符串 2 年前 |
![]() |
Manny · 如何比较Perl中的字符串? 2 年前 |
![]() |
Manan Girdhar · 拆分字符串并仅在java中使用第二部分 2 年前 |
![]() |
AnxiousLuna · Python使用len()获取数组索引数 2 年前 |
![]() |
antonoyaro8 · 数据帧中每列上的Grepl 2 年前 |