学习 ajax 技术的时候,很多同学对于 ajax 中 get 与 post 请求总是疑问不解,为了给学
员解决疑问,现将授课中对 get 与 post 的请求的总结发表于学生大本营中,希望能给你带来
帮助.
在 ajax 入门详解中我也简单的介绍了它们之间的使用区别,为了使学员能够彻底的明白,现
将如授课中的总结发表如下。
一、get()和 post()基本区别
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.<form method="get" action="a.asp?b=b">跟<form method="get"
action="a.asp">是一样的,也就是说,method 为 get 时 action 页面后边带的参数列
表会被忽视;而<form method="post" action="a.asp?b=b">跟<form
method="post" action="a.asp">是不一样的。
二、谈 Ajax 的 Get 和 Post 的区别
1.Get 方式
66 用 get 方式可传送简单数据,但大小一般限制在 1KB 下,数据追加到 url 中发送(http
的 header 传送),也就是说,浏览器将各个表单字段元素及其数据按照 URL 参数的格式
附加在请求行中的资源路径后面。另外最重要的一点是,它会被客户端的浏览器缓存起来,
那么,别人就可以从浏览器的历史记录中,读取到此客户的数据,比如帐号和密码等。因
此,在某些情况下,get 方法会带来严重的安全性问题。
Ajax 发送请求:如果是 get 请求 send(参数)参数:必须是 null 或 xhr.send();
666 get 请求就不必要设置 xhr.setRequestHeader(header,value)
备注:如果 xhr.send(参数);参数不为空情况下,在某些浏览器中会自动转换成 post 请求
方式 您可以通过 request.getMethod();方法获取请求的方式
实例:
function getAjax(){
6666 //获取 xhr 对象
6666 var xhr = getXhr();
6666 //规定请求类型
6666 xhr.open("get","main.jsp?username=123",true);
6666 //发送请求
6666 xhr.send();
666 //处理服务器响应事件
6666 xhr.onreadystatechange = function (){
666666666 //判读是否处理完毕 与判读服务器是否处理成功!
666666666 if(xhr.readyState==4 && xhr.status==200){
评论0