问题引入
在做一个活动支付项目的时候,提交订单(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】 ———这是一个危险的属性,慎用!