A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 霍世勇 中级黑马   /  2012-4-9 14:48  /  2666 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在ajax中 post()和get()有什么区别?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

5 个回复

倒序浏览
Get方式:
   用get方式可传送简单数据,但大小一般限制在1KB下,数据追加到url中发送(http的header传送),也就是说,浏览器将各个表单字段元素及其数据按照URL参数的格式附加在请求行中的资源路径后面。另外最重要的一点是,它会被客户端的浏览器缓存起来,那么,别人就可以从浏览器的历史记录中,读取到此客户的数据,比如帐号和密码等。因此,在某些情况下,get方法会带来严重的安全性问题。

   Post方式:
   当使用POST方式时,浏览器把各表单字段元素及其数据作为HTTP消息的实体内容发送给Web服务器,而不是作为URL地址的参数进行传递,使用POST方式传递的数据量要比使用GET方式传送的数据量大的多。

   总之,GET方式传送数据量小,处理效率高,安全性低,会被缓存,而POST反之。

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
1.使用Get请求时,参数在URL中显示,而使用Post方式,则不会显示出来
2.使用Get请求发送数据量小,Post请求发送数据量大
3.get请求需注意缓存问题,post请求不需担心这个问题
4.post请求必须设置Content-Type值为application/x-form-www-urlencoded
5.发送请求时,因为get请求的参数都在url里,所以send函数发送的参数为null,而post请求在使用send方法时,却需赋予其参数
6.在客户端使用get请求时,服务器端使用Request.QueryString来获取参数,而客户端使用post请求时,服务器端使用Request.Form来获取参数.

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
其实post和get还是各有各的好处的,下面对它们的差别进行区分一下:
GET是把参数数据队列加到提交表单的Ation属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到;对于GET方式,服务器端用Request。QueryString获取变量的值,get传送的数据不能大于2kb。
POST是通过HTTP POST机制,将表单内各个的字段与其内容放置在http请求信息体内,一起传送到Action属性所指URL地址,用户看不到这个过程,对于post方式,服务器端用Requst.Form获取提交数据,post传送的数据量一般默认不受限制。
get安全性非常低,post安全性较高,get方式以明文传递数据,post则以字节方式传送数据。但是get的执行效率要比post方法好。
鉴于post和get以上的区别,建议
数据包含机密信息的话,用post方式提交。
在做数据查询时,用get方式。而作数据添加、修改和删除时用post方式。
我们在编写AJAX程序时,经常需要修改或添加数据,所以采用post方式提交是一种常见的情形。

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
1.使用Get请求时,参数在URL中显示,而使用Post方式,则不会显示出来
2.使用Get请求发送数据量小,Post请求发送数据量大
3.get请求需注意缓存问题,post请求不需担心这个问题
4.post请求必须设置Content-Type值为application/x-form-www-urlencoded
5.发送请求时,因为get请求的参数都在url里,所以send函数发送的参数为null,而post请求在使用send方法时,却需赋予其参数
在客户端使用get请求时,服务器端使用Request.QueryString来获取参数,而客户端使用post请求时,服务器端使用Request.Form来获取参数.

关于服务器端获取数据,我们还可以使用一个通用的获取参数的方式即Request["username"],最好使用HttpWatch来观察一下当使用get和post方式发送请求时,客户端究竟发送了什么,收到了什么.get请求是带着参数的,post请求的url则不带.因为访问的是同一个服务器,所以从服务器获取的信息都是一致的.但是客户端发送的就不一样了.从cache可以看出,get请求在发送后,即被缓存,而post请求时 never cached.因为get请求的参数是在url中的,所以Query String中是有值的.而post请求则没有.在Post Data里,因为get请求的字符串是在url中附带的,所以Post Data中无数据,从服务器获取的内容都是一致的.在使用Request时,其会从QueryString,Form,ServerVariable中遍历一番,如果发现符合要求的数据,那么就会停止向后搜寻.所以,我们上例中获取的username实际上都是url中的username值.

总的来说:
1、Get请求的目的是给予服务器一些参数,以便从服务器获取列表
2、Post请求的目的是向服务器发送一些参数,例如form中的内容.
















评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
楼主身体健康,万事如意!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马