get 和 post 俩种提交表单的方式
自动提交表单的数据
启用表单的自动提交方式时, 我们需要添加上这一句:
eg:action="/Main/GetData" method="post"
action="/Main/GetData"(这是所对应的路径) method="post" 默认为method="get“(这是提交方式 post提交 或 get提交)。
禁用表单的自动提交方式 需要添加上:(俩者都可以,二选一)
-
οnsubmit=“return false;” -
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 请求:
- 当我们无法使用缓存文件时 (更新服务器上的文件或者数据库)
- 当我们向服务器发送大量的数据时 (post 提交, 是没有数据量限制的,而get提交是限制数据量的)
- 当我们发送包含未知字符的用户输入时,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 方法来提交表单数据,以便更好的进行数据的 增删查改 操作。
|