全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Ajax 入门之 GET 与 POST 的不同处详解

在之前的随笔中,本着怀旧的态度总结了一篇 兼容不同浏览器 建立XHR对象的方法:

  在建立好XHR对象之后,客户端需要做的就是,将数据以某种方式传递到服务器,以获得相应的响应,在这里,  Ajax技术总结的第二季,我将重点阐述 提交数据的两种方式。

  在这之前需要了解一下我们的HTTP传输协议:

HTTP 的工作方式是客户机与服务器之间的请求-应答协议。

举例:客户端(浏览器)向服务器提交 HTTP 请求;服务器向客户端返回响应。响应包含关于请求的状态信息以及可能被请求的内容。而想要基于HTTP协议进行数据传输,必然要用到两种请求方式.

两种 HTTP 请求方法:GET 和 POST

在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。

  • GET - 从指定的资源请求数据。
  • POST - 向指定的资源提交要被处理的数据

  这是W3C上对GRT与POST的使用场景描述,从字面上来理解,就是: GET是用来从服务器获取数据的,POST是用来向服务器传送数据的

这一点,我们从提交路径与数据的URL中就可以看出来:

  可以用来指向URL的属性有:

1. 表单中的 action;

2. a 标签中的 href

3. img script 中的 src 属性(此属性不受“ 同源策略 ”限制,可以利用来进行“跨域”,我想近期总结一片关于跨域的问题,在这里先挖个坑)

  这里,我们讲一讲form表单提交中他们的不同

一 、Ajax的表单提交中,get 使用 open()函数来提交数据,其中,数据以 URL? key & value 的形式拼接在URL后面:

xhr.open('get','xxx.php?name=tom & age=18');
xhr.send(null);

  在浏览器的URL中是这样的:

get 提交 URL

这里可以看出:GET是把参数数据队列加到提交表单的action属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。ID的url长度是有限制的,当url过长时会自动截取超长字符。这样就容易引发一个问题:当传递的参数过多,导致url过长时,url自动截取超长字符,最终传递参数部分获取不到。这也限制了GET传送的数据大小一般不能超过2KB;

  而且,从URL截图中可以看出: GET安全性非常低,当通过GET方法提交数据时,用户名和密码将出现在URL上。如果:

- 登陆页面可以被浏览器缓存;
- 其他人可以访问客户的这台机器。

那么,别人即可以从浏览器的历史记录中,读取到此客户的账号和密码。所以,在某些情况下,GET方法会带来严重的安全性问题。

并不是说GET方法没有优点,在速度测试中,get提交的速度是POST方式的数十倍。

二 、Ajax的表单提交中,POST 在 open()函数中只需要提供URL,由send()函数提交数据:  

//获取form数据
var formDom = document.querySelector('form');
var formData = new FormData(formDom);
//发送数据
xhr.open('post',formDom.action);
xhr.send(formData);

POST是:通过HTTPPOST机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到action属性所指的URL地址。用户看不到这个过程。安全性较高

 POST传送的数据量较大,一般被默认为不受限制。可以用这段demo中FormData对象的方式传递图片,富文本等文件,这是get所做不到的。

总结一下,Get是向服务器发索取数据的一种请求,而Post是向服务器提交数据的一种请求,在FORM(表单)中,Method默认为"GET",

实质上,GET和POST只是发送机制不同,并不是一个取一个发!

总之,这两种表单提交方式并没有优劣之分,只有不同的适应场景,这需要我们日常工作中去根据需求把握。

后面,我将总结一下,在浏览器与服务器之间的交互中,路径的几种不同书写方法。

以上所述是小编给大家介绍的Ajax 入门之 GET 与 POST 的不同处详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# ajax  # get  # post  # 区别  # Jquery中$.get()  # $.post()  # $.ajax()  # $.getJSON()的用法总结  # ajax中get和post的说明及使用与区别  # Jquery AJAX POST与GET之间的区别  # jquery中get  # post和ajax方法的使用小结  # jQuery Ajax之$.get()方法和$.post()方法  # jQuery中Ajax的get、post等方法详解  # jquery 读取页面load get post ajax 四种方式代码写法  # 原生 JS Ajax  # GET和POST 请求实例代码  # 表单  # 两种  # 可以看出  # 这是  # 在这里  # 客户端  # 不受  # 我将  # 小编  # 默认为  # 是一个  # 他们的  # 我想  # 是有  # 在这  # 在此  # 是这样  # 是用来  # 出现在  # 可以用 


相关文章: 北京企业网站设计制作公司,北京铁路集团官方网站?  如何选择靠谱的建站公司加盟品牌?  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  建站VPS选购需注意哪些关键参数?  建站主机空间推荐 高性价比配置与快速部署方案解析  制作营销网站公司,淘特是干什么用的?  网站制作报价单模板图片,小松挖机官方网站报价?  c++ stringstream用法详解_c++字符串与数字转换利器  相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  如何在服务器上三步完成建站并提升流量?  已有域名和空间如何搭建网站?  如何高效利用200m空间完成建站?  TestNG的testng.xml配置文件怎么写  智能起名网站制作软件有哪些,制作logo的软件?  如何高效配置IIS服务器搭建网站?  如何快速启动建站代理加盟业务?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  宁波免费建站如何选择可靠模板与平台?  如何在Golang中处理模块冲突_解决依赖版本不兼容问题  家庭建站与云服务器建站,如何选择更优?  平台云上自助建站如何快速打造专业网站?  开心动漫网站制作软件下载,十分开心动画为何停播?  全景视频制作网站有哪些,全景图怎么做成网页?  东莞专业制作网站的公司,东莞大学生网的网址是什么?  湖州网站制作公司有哪些,浙江中蓝新能源公司官网?  ui设计制作网站有哪些,手机UI设计网址吗?  岳西云建站教程与模板下载_一站式快速建站系统操作指南  如何在IIS管理器中快速创建并配置网站?  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  如何快速搭建二级域名独立网站?  公司网站设计制作厂家,怎么创建自己的一个网站?  香港服务器选型指南:免备案配置与高效建站方案解析  建站之星客服服务时间及联系方式如何?  如何在阿里云ECS服务器部署织梦CMS网站?  Android自定义控件实现温度旋转按钮效果  建站主机选哪种环境更利于SEO优化?  C#如何使用XPathNavigator高效查询XML  如何基于云服务器快速搭建个人网站?  宝华建站服务条款解析:五站合一功能与SEO优化设置指南  如何用腾讯建站主机快速创建免费网站?  洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?  网站建设制作、微信公众号,公明人民医院怎么在网上预约?  如何在自有机房高效搭建专业网站?  如何在景安云服务器上绑定域名并配置虚拟主机?  上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?  如何在橙子建站上传落地页?操作指南详解  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  历史网站制作软件,华为如何找回被删除的网站?  设计网站制作公司有哪些,制作网页教程? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。