Get和Post区别

AJAX中的Get和Post区别

1、Get

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

2、Post

用Post方式传送数据时,浏览器把各表单字段元素及其数据作为http消息的实体内容发送给web服务器,而不是作为url地址的参数进行传递。值得注意的是,使用post方式所传递的数据量要比使用get方式传递的数据量大得多。

总结:

Get:发送数据量小,安全性差。

Post:发送数据量大,安全性好。

*使用get传递参数需要使用encodeURIComponent方法处理参数;

例如:var url="Login.jsp?username=" + encodeURIComponent(username);

*使用post传递时

1、设置header的Context-Type为application/x-www-form-urlencode确保服务器知道实体中有参数变量,通常使用XmlHttpRequest对象中的setRequestHeader("Content-Type","application/x-www-urlencode;")。

例如:_xmlHttpRequest.setRequestHeader("Content-Type","application/x-www-urlencode");

2、参数格式为:名称=值&名称=值。

例如:var url=Login.jsp?userid=201394596&username=Tim&sex=male&age=23;

错误写法:var url=Login.jsp?userid=&username=Tim&sex=male&age=23;

3、参数在send()方法中发送。

例如:_xmlHttpRequest.send(url);//若为get方式,直接使用_xmlHttpRequest.send(null);

 

参考文章:http://blog.csdn.net/rgcyc/archive/2009/08/19/4464097.aspx

致谢:感谢rgcyc。

posted on 2010-04-07 00:41  Tim's Home  阅读(1234)  评论(0编辑  收藏  举报