Ajax 入门之 GET 与 POST 的不同处详解
发布时间 - 2026-01-10 23:03:35 点击率:次在之前的随笔中,本着怀旧的态度总结了一篇 兼容不同浏览器 建立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 请求实例代码
# 表单
# 两种
# 可以看出
# 这是
# 在这里
# 客户端
# 不受
# 我将
# 小编
# 默认为
# 是一个
# 他们的
# 我想
# 是有
# 在这
# 在此
# 是这样
# 是用来
# 出现在
# 可以用
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】
C++用Dijkstra(迪杰斯特拉)算法求最短路径
Python3.6正式版新特性预览
免费网站制作appp,免费制作app哪个平台好?
nginx修改上传文件大小限制的方法
javascript日期怎么处理_如何格式化输出
Laravel如何实现API版本控制_Laravel版本化API设计方案
HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】
高防服务器租用首荐平台,企业级优惠套餐快速部署
php增删改查怎么学_零基础入门php数据库操作必知基础【教程】
香港服务器如何优化才能显著提升网站加载速度?
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
如何在香港免费服务器上快速搭建网站?
Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】
Laravel如何实现多对多模型关联?(Eloquent教程)
成都网站制作公司哪家好,四川省职工服务网是做什么用?
Laravel怎么实现微信登录_Laravel Socialite第三方登录集成
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
如何在阿里云域名上完成建站全流程?
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
Laravel如何编写单元测试和功能测试?(PHPUnit示例)
Python文件异常处理策略_健壮性说明【指导】
Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】
如何选择PHP开源工具快速搭建网站?
Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】
Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康
如何批量查询域名的建站时间记录?
Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧
电商网站制作价格怎么算,网上拍卖流程以及规则?
JavaScript中如何操作剪贴板_ClipboardAPI怎么用
android nfc常用标签读取总结
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
香港服务器租用每月最低只需15元?
如何快速生成凡客建站的专业级图册?
北京的网站制作公司有哪些,哪个视频网站最好?
瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
如何实现建站之星域名转发设置?
Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中
Python高阶函数应用_函数作为参数说明【指导】
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
MySQL查询结果复制到新表的方法(更新、插入)
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
动图在线制作网站有哪些,滑动动图图集怎么做?
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
Laravel distinct去重查询_Laravel Eloquent去重方法
Laravel怎么实现支付功能_Laravel集成支付宝微信支付
Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)
如何将凡科建站内容保存为本地文件?
实例解析Array和String方法

