客户端(前端)Ajax中Get请求和Post请求的区别
我们在使用Ajax时,当我们向服务器发送数据时,我们可以采用Get方式请求服务器,也可以使用Post方式请求服务器.那么,Get请求和Post请求的区别到底在哪呢?
GET请求
get是最常见的请求,最常用于向服务器查询某些信息。必要时,可以将查询字符串参数追加到URL的末尾,以便将信息发送给服务器,对XHR而言,位于传入open( )方法的URL末尾的查询字符串必须经过正确的编码才行,即查询字符串的每个参数的名称和值都 必须使用encodeURIComponent()进行编码,然后才能放到URL的末尾,而且所有的名-值对都必须由&号分隔。
xhr.open( "get", "example.php?name1=value1&name2=value2",true );
下面这个函数整可以辅助向现有URL的末尾添加查询字符串参数:
function addURLParam(){url += ( url.indexOf("?") == -1 ? "?" : "&" );url += encodeURLComponent(name) + "=" + encodeURLComponent( value );return url;
}
POST请求
使用频率仅次于GET的是POST请求,通常用于向服务器发送应该被保存的数据。
POST请求应该把数据作为请求的主体提交,其请求的主体可以包含非常多的数据,而且格式不限。
POST请求必须设置Content-Type值为application/x-form-www-urlencoded;如果不设置Content-Type 头部信息,那么发送给服务器的的数据就不会出现在$_POST超全局变量中。
发送请求时POST请求在使用send方法时,需赋予其参数;
总结:
Get请求和Post请求的区别
(1)使用Get请求时,参数在URL中显示,而使用Post请求,则不会显示出来;
(2)Post传输的数据量大,可以达到2M,而Get方法由于受到URL长度的限制,只能传递大约1024字节.
(3)Get请求请求需注意缓存问题,Post请求不需担心这个问题;
(4)Post请求必须设置Content-Type值为application/x-form-www-urlencoded;
(5)发送请求时,
Get请求的参数都在url里,后台获取的时候可以通过Request.QueryString【key】;
Post请求的参数都在Form里,后台获取的时候可以通过Request.Form【key】;
(6)GET方式请求的数据会被浏览器缓存起来,因此其他人就可以从浏览器的历史记录中读取到这些数据,例如账号和密码等。在某种情况下,GET方式会带来严重的安全问题。而POST方式相对来说就可以避免这些问题。
下面用代码来说明两者的区别:
GET请求:
function getMethod(){var xhr = new createXHR();var userName = document.getElementById("userName").value;var age = document.getElementById("age").value;//添加参数,以求每次访问不同的url,以避免缓存问题xhr.open( "get", "example.php?userName=" + encodeURTComponent( userName ) + "&age=" + encodeURTComponent( age ) + "&random=" + Math.random(), true );xhr.onreadystatechange = function(){if( xhr.readyState == 4 && xhr.status == 200 ){document.getElementById("result").innerHTML = xhr.responseText;}}//发送请求,参数为nullxhr.send( null );
}
POST请求:
function postMethod(){var xhr = new createXHR();var userName = document.getElementById("userName").value;var age = document.getElementById("age").value;var data = "userName=" + encodeURTComponent( userName ) + "&age=" + encodeURTComponent( age );//不用担心缓存问题xhr.open( "post", "example.php", true );//必须设置,否则服务器端收不到参数xhr.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" );xhr.onreadystatechange = function(){if( xhr.readyState = 4 && xhr.status == 200 ){document.getElementById("result").innerHTML = xhr.responseText;}}//发送请求,要data数据xhr.send( data );}
客户端(前端)Ajax中Get请求和Post请求的区别相关推荐
- JSP、Servlet中get请求和post请求的区别总结
在学习JavaWeb最初的开始阶段,大家都会遇到HttpServlet中的doGet和doPost方法.前两天看<Head First Servlets & JSP>看到其中讲关于 ...
- java中的post的作用,JSP、Servlet中get请求和post请求的区别总结
在学习JavaWeb最初的开始阶段,大家都会遇到HttpServlet中的doGet和doPost方法.前两天看<Head First Servlets & JSP>看到其中讲关于 ...
- WEB中get请求和post请求的区别
参考:https://blog.csdn.net/weixin_39361808/article/details/81136865 GET请求和POST请求是HTTP协议发送请求的两种基本方法. W3 ...
- 前端学习笔记-07post请求和get请求,样式以及CSS
1.get请求和post请求的区别 2. style属性 通过设置style属性来改变样式 案例:使用style属性优化登录表单 <!DOCTYPE html> <html>& ...
- 接口定义,常见的接口,常见的接口请求方式,put请求和patch请求的区别
接口定义:应用程序编程接口,指前后端数据交互的一套标准,包括软件内部之间的接口,硬件之间的接口或者是软件对外的接口. 常见的接口类型: 1,Webservice接口,主要用于服务端的接 ...
- get请求和post请求的区别(简洁易懂)
一.GET和POST是什么? HTTP协议中的两种发送请求的方法,本质上都是在进行TCP连接. 二. GET请求和POST请求的区别是什么? GET请求参数是通过URL进行传递的,POST请求的参数包 ...
- get请求和post请求的区别(全面讲解)
1.get请求一般是去取获取数据(其实也可以提交,但常见的是获取数据): post请求一般是去提交数据. 2.get因为参数会放在url中,所以隐私性,安全性较差,请求的数据长度是有限制的, 不同的浏 ...
- Post请求和Get请求的区别
1.参数 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数. 其次:Post传输的数据量大,可以达到2M,而Get方法由于受到URL长度限制,只能传递大约10 ...
- 简洁!get请求和post请求的区别——Web网络系列学习笔记
一次网络交互分为以下三个部分 用户向服务器发送请求 服务器处理请求 服务器向用户返回响应 Get和Post是不同的用户请求方式 Get请求到达服务器后不会修改服务器上的数据, 以CSDN为例,点击查看 ...
最新文章
- CF20C Dijkstra?( Dijkstra!练手)难度⭐⭐⭐
- Error in exists(x): 第一个参数不对
- [转]苹果iOS 5限制应用本地存储问题
- 学完python基础开始学爬虫_零基础入门Python爬虫不知道怎么学?这是入门的完整教程...
- 我所理解的MVCMVPMVVM
- 正确的 Git 提交记录和分支模型
- 如何异步的处理restful服务(基础)
- 13.简述MYSQL的权限级别_MySQL权限级别
- 远程连接电脑_Python黑科技:在家远程遥控公司电脑,python+微信一键连接!
- centos7 oracle_Centos7主机名变成bogon的原因及解决方法
- 多线程循环输出abcc++_C ++循环| 查找输出程序| 套装2
- 如何关闭mac烦人的更新升级提醒
- 《算法第四版》环境搭建
- office出错怎么简单修复
- 文本特征提取和向量化
- 物联网开发 无线433MHz安防报警系统 上
- 开启win10隐藏语音库
- 《Hibernate上课笔记》------class6------Hibernate实现一对多关联映射
- TXT文本数据转换成Excel表格
- Xposed框架初次见面-开发自己的Xposed插件
热门文章
- 鸿蒙系统空城计,鸿蒙系统到底什么时候用在手机上?
- python多线程写日志_python 多线程logger问题
- linux 添加隐藏wi-fi,隐藏wifi怎么设置?
- AI技术人才成长路线十大方向
- VTK图形模型主要对象
- [USACO 07DEC]Best Cow Line, Gold
- windows/browser ---- cmd命令/powershell命令/chrome插件vimuim命令
- YOLO算法的ZYNQ移植尝试(SDx方法、ARM部分)
- spring复杂数据类型传递
- 【Advanced Windows Phone Programming】在windows phone 8中录制MP3和AAC及Amr音频