Heim >Web-Frontend >Front-End-Fragen und Antworten >Was ist der Unterschied zwischen Post und Get in Ajax Request?
区别:1、get把参数数据队列加到提交表单的ACTION属性所指的URL中,而post是通过“HTTP post”机制,将表单内各个字段与其内容放置在“HTML HEADER”内一起传送到ACTION属性所指的URL地址;2、get方式,服务器端用“Request.QueryString”获取变量的值,对于post方式,服务器端用“Request.Form”获取提交的数据。
本文操作环境:windows10系统、javascript1.8.5&&html5版、Dell G3电脑。
1、 get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
2、 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。两种方式的参数都可以用Request来获得。
3、get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,因服务器的不同而异.
4、get安全性非常低,post安全性较高。
5、跟是一样的,也就是说,action页面后边带的参数列表会被忽视;而跟是不一样的。
另外
Get请求有如下特性:它会将数据添加到URL中,通过这种方式传递到服务器,通常利用一个问号?代表URL地址的结尾与数据参数的开端,后面的参数每一个数据参数以“名称=值”的形式出现,参数与参数之间利用一个连接符&来区分。
Post请求有如下特性:数据是放在HTTP主体中的,其组织方式不只一种,有&连接方式,也有分割符方式,可隐藏参数,传递大批数据,比较方便。
总而言之:当我们在提交表单的时候我们通常用post方式,当我们要传送一个较大的数据文件时,需要用post。当传递的值只需用参数方式(这个值不大于2KB)的时候,用get方式即可。
所以对于ajax提交两者用法自然就明了了。
扩展知识:
那么如何选择get和post呢?
get请求的目的是给予服务器一些参数,以便从服务器获取列表.例如:list.aspx?page=1,表示获取第一页的数据
如果调用是要检索服务器上的数据则使用get,另外需要注意的是,如果要检索的值会随时间和更新进程的改变而改变,则要在get调用中添加一个随机数或者时间戳,这样后面的调用才不会使用先前的不正确的缓存。与post相比,get更简单也更快,并且在大部分情况下都能用。
post请求的目的是向服务器发送一些参数
无法使用缓存文件(更新服务器上的文件或数据库),使用post
向服务器发送大量数据(post没有数据量限制),使用post
发送包含未知字符的用户输入时,post比get更稳定也更可靠
我们知道get的目的就如同其名字一样是用于获取信息的。它旨在显示出页面上你要阅读的信息。浏览器会缓冲get请求的执行结果,如果同样的get请求再次发出,浏览器就会显示缓冲的结果而不是重新运行整个请求。这一流程不同于浏览器的处理过程,但是它是有意设计成这样,使get调用更有效率。get调用会检索要显示在页面中的数据,数据不会再服务器上被更改,因此重新请求相同数据的时候会得到相同的结果。
post方法应该用于需要更新服务器信息的地方。如某调用要更改保存在服务器上的数据,而从两个同样的post调用返回的结果或许会完全不同,因为第二个post调用的值与第一个的值不相同,这是由于第一个调用已经更新了其中一些值。post调用通常会从服务器上获取响应而不是保持前一个响应的缓存。
get请求
oBtn.onclick = function() { var xhr = null; try { xhr = new XMLHttpRequest(); } catch (e) { xhr = new ActiveXObject('Microsoft.XMLHTTP'); } /* 1.缓存 在url?后面连接一个随机数,时间戳 2.乱码 编码encodeURI */ xhr.open('get','2.get.php?username='+encodeURI('刘伟')+'&age=30&' + new Date().getTime(),true); xhr.send(); xhr.onreadystatechange = function() { if ( xhr.readyState == 4 ) { if ( xhr.status == 200 ) { alert( xhr.responseText ); } else { alert('出错了,Err:' + xhr.status); } } } }
post请求
oBtn.onclick = function() { var xhr = null; try { xhr = new XMLHttpRequest(); } catch (e) { xhr = new ActiveXObject('Microsoft.XMLHTTP'); } xhr.open('post','2.post.php',true); //post方式,数据放在send()里面作为参数传递 xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');//申明发送的数据类型 //post没有缓存问题 //无需编码 xhr.send('username=刘伟&age=30'); xhr.onreadystatechange = function() { if ( xhr.readyState == 4 ) { if ( xhr.status == 200 ) { alert( xhr.responseText ); } else { alert('出错了,Err:' + xhr.status); } } } }
【相关教程推荐:AJAX视频教程】
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Post und Get in Ajax Request?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!