Jquery AJAX POST与GET之间的区别


Posted in Javascript onNovember 14, 2013

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 相关文章推荐
非常不错的一个javascript 类
Nov 07 Javascript
JS 通过系统时间限定动态添加 select option的实例代码
Jun 09 Javascript
require.js 加载 vue组件 r.js 合并压缩的实例
Oct 14 Javascript
详解Javascript函数声明与递归调用
Oct 22 Javascript
Bootstrap CSS组件之按钮下拉菜单
Dec 17 Javascript
jQuery插件zTree实现的多选树效果示例
Mar 08 Javascript
javascript实现Java中的Map对象功能的实例详解
Aug 21 Javascript
Angular模版驱动表单的使用总结
May 05 Javascript
详解js 创建对象的几种方法
Mar 08 Javascript
Vue的生命周期操作示例
Sep 17 Javascript
JavaScript如何借用构造函数继承
Nov 06 Javascript
搭建Vue从Vue-cli到router路由护卫的实现
Nov 14 Javascript
Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
Nov 14 #Javascript
JS正则表达式大全(整理详细且实用)
Nov 14 #Javascript
JS中typeof与instanceof之间的区别总结
Nov 14 #Javascript
jQuery探测位置的提示弹窗(toolTip box)详细解析
Nov 14 #Javascript
使用jQuery解决IE与FireFox下createElement方法的差异
Nov 14 #Javascript
浅析用prototype定义自己的方法
Nov 14 #Javascript
Js nodeType 属性全面解析
Nov 14 #Javascript
You might like
php设计模式之命令模式使用示例
2014/03/02 PHP
thinkphp中的url跳转用法分析
2016/07/12 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
在Z-Blog中运行代码[html][/html](纯JS版)
2007/03/25 Javascript
window.name代替cookie的实现代码
2010/11/28 Javascript
拉动滚动条加载数据的jquery代码
2012/05/03 Javascript
ko knockoutjs动态属性绑定技巧应用
2012/11/14 Javascript
jquery实现红色竖向多级向右展开的导航菜单效果
2015/08/31 Javascript
js实现模拟银行卡账号输入显示效果
2015/11/18 Javascript
JS与HTML结合实现流程进度展示条思路详解
2017/09/03 Javascript
微信小程序 input表单与redio及下拉列表的使用实例
2017/09/20 Javascript
jQuery实现鼠标滑过商品小图片上显示对应大图片功能【测试可用】
2018/04/27 jQuery
详解Bootstrap 学习(一)入门
2019/04/12 Javascript
js中的深浅拷贝问题简析
2019/05/10 Javascript
vue页面加载时的进度条功能(实例代码)
2020/01/13 Javascript
解决vue单页面 回退页面 keeplive 缓存问题
2020/07/22 Javascript
Openlayers实现地图的基本操作
2020/09/28 Javascript
token 机制和实现方式
2020/12/15 Javascript
windows 下python+numpy安装实用教程
2017/12/23 Python
Python机器学习算法之k均值聚类(k-means)
2018/02/23 Python
python实现键盘控制鼠标移动
2020/11/27 Python
django如何通过类视图使用装饰器
2019/07/24 Python
关于阿里云oss获取sts凭证 app直传 python的实例
2019/08/20 Python
Python 创建TCP服务器的方法
2020/07/28 Python
详解如何修改jupyter notebook的默认目录和默认浏览器
2021/01/24 Python
Html5实现移动端、PC端 刮刮卡效果
2016/06/30 HTML / CSS
快速创建 HTML5 Canvas 电信网络拓扑图的示例代码
2018/03/21 HTML / CSS
硕士研究生自我鉴定
2013/11/08 职场文书
大一期末自我鉴定
2013/12/13 职场文书
网吧最新创业计划书范文
2014/03/27 职场文书
工作疏忽检讨书500字
2014/10/26 职场文书
工作态度恶劣检讨书
2015/05/06 职场文书
2016年八一建军节活动总结
2016/04/05 职场文书
职业规划从高考志愿专业选择开始
2019/08/08 职场文书
公司财务制度:成本管理控制制度模板
2019/11/19 职场文书
python实现批量移动文件
2021/04/05 Python