Jquery AJAX POST与GET之间的区别详细介绍


Posted in Javascript onOctober 17, 2016

1:GET访问 浏览器 认为 是等幂的

就是 一个相同的URL 只有一个结果[相同是指 整个URL字符串完全匹配]

所以 第二次访问的时候 如果 URL字符串没变化 浏览器是 直接拿出了第一次访问的结果

POST则 认为是一个 变动性 访问 (浏览器 认为 POST的提交 必定是 有改变的)

防止 GET 的 等幂 访问 就在URL后面加上 ?+new Date();,[总之就是使每次访问的URL字符串不一样的]

设计WEB页面的时候 也应该遵守这个原则

2:一.谈Ajax的Get和Post的区别

Get方式:

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

Post方式:

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

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

使用get方式需要注意:

1 对于get请求(或凡涉及到url传递参数的),被传递的参数都要先经encodeURIComponent方法处理.例:var url = "update.php?username=" +encodeURIComponent(username) + "&content=" +encodeURIComponent

(content)+"&id=1" ;

使用Post方式需注意:

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

例:xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

2.参数是名/值一一对应的键值对,每对值用&号隔开.如 var name=abc&sex=man&age=18,注意var name=update.php?

abc&sex=man&age=18以及var name=?abc&sex=man&age=18的写法都是错误的;

3.参数在Send(参数)方法中发送,例: xmlHttp.send(name); 如果是get方式,直接 xmlHttp.send(null);

4.服务器端请求参数区分Get与Post。如果是get方式则$username = $_GET["username"]; 如果是post方式,则$username = $_POST["username"];

AJAX乱码问题

产生乱码的原因:

1、xtmlhttp 返回的数据默认的字符编码是utf-8,如果客户端页面是gb2312或者其它编码数据就会产生乱码
2、post方法提交数据默认的字符编码是utf-8,如果服务器端是gb2312或其他编码数据就会产生乱码

解决办法有:

1、若客户端是gb2312编码,则在服务器指定输出流编码
2、服务器端和客户端都使用utf-8编码

gb2312:header('Content-Type:text/html;charset=GB2312');

utf8:header('Content-Type:text/html;charset=utf-8');

注意:如果你已经按上面的方法做了,还是返回乱码的话,检查你的方式是否为get,对于get请求(或凡涉及到url传递参数的),被传递的参数都要先经 encodeURIComponent方法处理.如果没有用encodeURIComponent处理的话,也会产生乱码.

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
js特殊字符转义介绍
Nov 05 Javascript
浅谈JSON.parse()和JSON.stringify()
Jul 14 Javascript
jQuery遮罩层效果实例分析
Jan 14 Javascript
jQuery原理系列-css选择器的简单实现
Jun 07 Javascript
JavaScript判断是否是微信浏览器
Jun 13 Javascript
vue.js初学入门教程(2)
Nov 07 Javascript
微信小程序开发的四十个技术窍门总结(推荐)
Jan 23 Javascript
关于Promise 异步编程的实例讲解
Sep 01 Javascript
JavaScript中数组常见操作技巧
Sep 01 Javascript
详解在vue-cli中使用路由
Sep 25 Javascript
ExtJs整合Echarts的示例代码
Feb 27 Javascript
15个简单的JS编码标准让你的代码更整洁(小结)
Jul 16 Javascript
微信小程序 教程之模块化
Oct 17 #Javascript
微信小程序 教程之注册页面
Oct 17 #Javascript
微信小程序 教程之注册程序
Oct 17 #Javascript
微信小程序 教程之小程序配置
Oct 17 #Javascript
jQuery事件对象总结
Oct 17 #Javascript
微信小程序 MINA文件结构
Oct 17 #Javascript
Jquery实现上下移动和排序代码
Oct 17 #Javascript
You might like
mysql5的sql文件导入到mysql4的方法
2008/10/19 PHP
php长字符串定义方法
2012/07/12 PHP
基于HBase Thrift接口的一些使用问题及相关注意事项的详解
2013/06/03 PHP
destoon在360浏览器下出现用户被强行注销的解决方法
2014/06/26 PHP
PHP把MSSQL数据导入到MYSQL的方法
2014/12/27 PHP
网站防止被刷票的一些思路与方法
2015/01/08 PHP
常用PHP数组排序函数归纳
2016/08/08 PHP
HTML中事件触发列表与解说
2007/07/09 Javascript
js获取单元格自定义属性值的代码(IE/Firefox)
2010/04/05 Javascript
showModalDialog在谷歌浏览器下会返回Null的解决方法
2013/11/27 Javascript
js在输入框屏蔽按键,只能键入数字的示例代码
2014/01/03 Javascript
jquery禁止输入数字以外的字符的示例(纯数字验证码)
2014/04/10 Javascript
jquery trigger伪造a标签的click事件取代window.open方法
2014/06/23 Javascript
jQuery实现自动调整字体大小的方法
2015/06/15 Javascript
EasyUi中的Combogrid 实现分页和动态搜索远程数据
2016/04/01 Javascript
Nodejs+Socket.io实现通讯实例代码
2017/02/13 NodeJs
Vue2.0实现1.0的搜索过滤器功能实例代码
2017/03/20 Javascript
JS组件系列之JS组件封装过程详解
2017/04/28 Javascript
.vue文件 加scoped 样式不起作用的解决方法
2018/05/28 Javascript
详解如何在Vue里建立长按指令
2018/08/20 Javascript
Vue中使用canvas方法总结
2019/02/12 Javascript
javascript设计模式 ? 简单工厂模式原理与应用实例分析
2020/04/09 Javascript
一个简单的python程序实例(通讯录)
2013/11/29 Python
用Python编写一个国际象棋AI程序
2014/11/28 Python
Python中使用socket发送HTTP请求数据接收不完整问题解决方法
2015/02/04 Python
在Python中使用列表生成式的教程
2015/04/27 Python
python安装pywin32clipboard的操作方法
2019/01/24 Python
django 自定义过滤器(filter)处理较为复杂的变量方法
2019/08/12 Python
python如何进行矩阵运算
2020/06/05 Python
CSS3 transition 实现通知消息轮播条
2020/10/14 HTML / CSS
Bogner美国官网:滑雪服中的”Dior”
2018/01/30 全球购物
斯洛伐克电子产品购物网站:DATART
2020/04/05 全球购物
电焊工岗位职责
2014/03/06 职场文书
四风问题个人对照检查剖析材料
2014/09/27 职场文书
python 三边测量定位的实现代码
2021/04/22 Python
Python实现8种常用抽样方法
2021/06/27 Python