问题引入

在做一个活动支付项目的时候,提交订单(form表单)跳转支付页面发现没有反应。经过断点排查发现断点也进了,不报错。但是返回的就是空白页,让人很纠结。

经过反复测试,才发现是杀毒软件拦截了form表单的请求。如何来解决这个问题呢?下来我们来看看Form表单的属性就会明白了。

FORM的属性

method属性:规定用于发送 form-data 的 HTTP 方法。实际上就是请求的方式。

name属性:表单的名称。

action属性:指定表单请求的路径

target属性:指定action的Url在哪里打开

method属性

form表单是的HTML中常用的标签。主要用来提交参数与后台数据进行交互。提交表单的方式有两种(主要通过method属性控制):

①GET方式:最常见的提交方式,也就是将请求的参数直接拼接在请求路径的后面。这样的方式会把参数暴露在地址栏,不安全,而且有长度的限制。

②POST方式:也比较常见。这种请求方式将参数保存在请求体中,地址栏不会出现请求的参数。相对安全。

name属性

定义表单的名称,一般不使用。

action属性

form表单的灵魂,action指定的请求路径的具体地址

target属性

_blank:指定action的Url在新开的浏览器窗口中

_parent:指定action的Url在父级浏览器窗口中

_self:指定action的Url在当前浏览器窗口中

_top:指定action的Url在顶级浏览器窗口中

代码块

form表单的属性位置,例如:

"form_name" method ="method" action = "URL" target ="target_win">
...

问题解决

杀毒软件拦截请求一般会在新打开的页面拦截,也就是使用了target属性的“_blank”。默认情况也会是“_blank”,所以会被拦截到。不重新发开新的浏览器窗口,就不会拦截。所有解决办法将”_blank”属性改为“_self”就会解决此问题。

花絮(HTML5中的新属性)

autocomplete属性:规定表单是否自动提交【on/off】

novalidate属性:如果使用该属性,表单不验证可以直接提交【novalidate】 ———这是一个危险的属性,慎用!