get 和 post 俩种提交表单的方式

自动提交表单的数据

启用表单的自动提交方式时,
我们需要添加上这一句:

eg:action="/Main/GetData" method="post"  
action="/Main/GetData"(这是所对应的路径) method="post" 默认为method="get“(这是提交方式 post提交 或 get提交)。

禁用表单的自动提交方式 需要添加上:(俩者都可以,二选一)

1. οnsubmit=“return false;”
2. autocomplete=“off”
eg:action="/Main/GetData" method="post"   οnsubmit="return false;" 
或  action="/Main/GetData" method="post"    autocomplete="off"

form表单的属性 action 和 method

属性

属性值

描述

action

URL

规定当提交表单时向何处发送表单的数据

method

get / post

规定用于发送form-data的HTTP的方法

以下就是提交表单的方式:

<form action="/Form00/getData" method="post"></form>

URL都有哪些值呢?

URL可能的值

绝对的URL

指向其他网站的站点 (eg: src=“www.baidu.com”)

相对的URL

指向本站点内的文件 (eg:src="/Form/getData")

method 属性 有 get 和 post 这俩个值。

在W3Cchool 中 指出,使用get 提交时 参数是直接暴露在URL上的。

当 get 和 post 相比较时,get 是最简单也是最快的 ,而且get 在大部分的情况下都是可以使用的。

而我们使用post是有条件的。

虽然这样讲,但是get 请求数据就是没有post 请求数据安全。

当我们遇到以下的情况,要使用 post 请求:

  1. 当我们无法使用缓存文件时 (更新服务器上的文件或者数据库)
  2. 当我们向服务器发送大量的数据时 (post 提交, 是没有数据量限制的,而get提交是限制数据量的)
  3. 当我们发送包含未知字符的用户输入时,post 提交 往往 比get提交 更稳定更可靠更好

总的来说:选择post 方法来提交数据更好一点。

get 和 post 到底有什么区别呢?

以下向你们解答:

get 提交方法

post 提交方法

用来向服务器上获取数据

用来向服务器上传递修改数据(或者说传递更新的数据)

将表单里的数据添加到action所指向的URL后面,而且俩者之间是使用“ ? ” 来进行连接的,但是里面的各个变量之间使用“ & ”来进行连接

将表单里面的数据放在form的数据体(FormData)中,然后按照键值对的方式,将数据传递到所指定的action

相对来说,get是不安全的,因为当用户在传输数据的过程中,数据被放在请求的URL上,这样用户就会直接在浏览器上看到提交的数据,不隐蔽

而post的所有操作对于用户来说是不可见的,数据都在数据体(FormData)中

当get方法向URL中添加数据,URL的长度是有限制的(URL的最大长度是2048个字符(而一个字母(或中文)就代表一个字符))

post提交是无限制

get方法是form表单的默认提交方式

获取到数据之后,刷新时是不会有负面的影响的,因为只是获取到数据(没有对整一个页面产生影响)

post数据将会被重新提交。可能会产生不良的影响(代码有瑕疵,或者数据路径没有连接上,是会导致有不同程度的报错) (浏览器应该告知用户数据将会被重新进行提交)

——

——

数据类型的限制

get只允许 ASCII 字符

post 没有字符限制 (企业开发中,假如需求中要提交二进制数据(eg:图片),那么我们就需要使用post 方法来进行提交 )

get 提交 ——get只能通过两种方式接收数据-从控制器中 (第一种 和 第四种方法)

//获取form表单
                let form = document.getElementById("frm");
               
               //get只能通过两种方式接收数据-从控制器中
                //1./Main/GetData   通过形参接收数据
                //form.action = "/Main/GetData";
                //4.EntityClass     实体类接收数据
                form.action = "/Main/getDataByEntityClass";
                form.method = "get";
                //submit()  提交方法
                form.submit();

post 提交——post可以通过四种方式接收数据-从控制器中

//获取form表单
                 let form = document.getElementById("frm");
              
                //post可以通过四种方式接收数据-从控制器中
                //1./Main/GetData 通过形参接收数据
                //form.action = "/Main/GetData";
                
               //2."/Main/getDataByFormCollection" 通过FormCollection来接收数据
                //form.action = "/Main/getDataByFormCollection";
                
                //3.通过 Request.Form["name的属性值"]获取表单数据
                //form.action = "/Main/getDataByRequest";
                
                //4.EntityClass实体类接收数据
                form.action = "/Main/getDataByEntityClass";
                
                form.method = "post";
                //submit()  提交方法
                form.submit();

总结:

1. get 请求数据 虽然在大部分的情况下可以使用,但是 个人建议 使用 post 来请求数据。

2. post 方法不但安全,而且post 是按照键值对的方式来传递数据的, post 提交数据无限制的,没有字符限制

还可以 提交二进制数据(图片)。post 不但可以获取数据,还可以修改(更新)数据。

3. 在企业开发中,一般使用post 方法来提交表单数据,以便更好的进行数据的 增删查改 操作。