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 相关文章推荐
农历与西历对照
Sep 06 Javascript
JavaScript设计模式之适配器模式介绍
Dec 28 Javascript
jQuery实现跟随鼠标运动图层效果的方法
Feb 02 Javascript
举例讲解如何判断JavaScript中对象的类型
Apr 22 Javascript
第一次接触神奇的Bootstrap表单
Jul 27 Javascript
js 模仿锚点定位的实现方法
Nov 19 Javascript
bootstrapValidator自定验证方法写法
Dec 01 Javascript
在javascript中,null>=0 为真,null==0却为假,null的值详解
Feb 22 Javascript
ECMAScript6 新特性范例大全
Mar 24 Javascript
Vue组件库发布到npm详解
Feb 17 Javascript
jQuery实现手风琴效果(蒙版)
Jan 11 jQuery
vue 动态设置img的src地址无效,npm run build 后找不到文件的解决
Jul 26 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操作文件类的函数代码(文件和文件夹创建,复制,移动和删除)
2011/11/10 PHP
php中adodbzip类实例
2014/12/08 PHP
Linux php 中文乱码的快速解决方法
2016/05/13 PHP
判断目标是否是window,document,和拥有tagName的Element的代码
2010/05/31 Javascript
JS完整获取IE浏览器信息包括类型、版本、语言等等
2014/05/22 Javascript
javascript 寻找错误方法整理
2014/06/15 Javascript
js判断复选框是否选中及选中个数的实现代码
2016/05/30 Javascript
Angularjs使用directive自定义指令实现attribute继承的方法详解
2016/08/05 Javascript
js改变html的原有内容实现方法
2016/10/05 Javascript
微信小程序  modal弹框组件详解
2016/10/27 Javascript
vue.js实现表格合并示例代码
2016/11/30 Javascript
JavaScript中错误正确处理方式小结你用对了吗
2017/10/10 Javascript
打造通用的匀速运动框架(实例讲解)
2017/10/17 Javascript
小程序实现多列选择器
2019/02/15 Javascript
javascript设计模式之装饰者模式
2020/01/30 Javascript
vue自定义组件(通过Vue.use()来使用)即install的用法说明
2020/08/11 Javascript
[48:46]完美世界DOTA2联赛PWL S2 SZ vs FTD.C 第二场 11.19
2020/11/19 DOTA
python 字符串split的用法分享
2013/03/23 Python
浅谈MySQL中的触发器
2015/05/05 Python
在Python中操作字符串之rstrip()方法的使用
2015/05/19 Python
Python标准库笔记struct模块的使用
2018/02/22 Python
Python使用xlwt模块操作Excel的方法详解
2018/03/27 Python
pandas通过loc生成新的列方法
2018/11/28 Python
Django Rest framework频率原理与限制
2019/07/26 Python
python不相等的两个字符串的 if 条件判断为True详解
2020/03/12 Python
Python+Django+MySQL实现基于Web版的增删改查的示例代码
2020/05/13 Python
英国名牌男装店:Standout
2021/02/17 全球购物
医院检讨书范文
2014/02/01 职场文书
文明市民先进事迹
2014/05/15 职场文书
2014年小学国庆节活动方案
2014/09/16 职场文书
学校世界艾滋病日宣传活动总结
2015/05/05 职场文书
如何获取numpy array前N个最大值
2021/05/14 Python
上帝为你开了一扇窗之Tkinter常用函数详解
2021/06/02 Python
在redisCluster中模糊获取key方式
2021/07/09 Redis
德生2P3收音机开箱评测
2022/04/30 无线电
字节飞书面试promise.all实现示例
2022/06/16 Javascript