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 相关文章推荐
jQuery getJSON 处理json数据的代码
Jul 26 Javascript
javascript读取Xml文件做一个二级联动菜单示例
Mar 17 Javascript
JavaScript实现简单的数字倒计时
May 15 Javascript
jQuery实现平滑滚动的标签分栏切换效果
Aug 28 Javascript
JS模拟Dialog弹出浮动框效果代码
Oct 16 Javascript
jQuery基于ajax操作json数据简单示例
Jan 05 Javascript
新闻上下滚动jquery 超简洁(必看篇)
Jan 21 Javascript
JS实现PC手机端和嵌入式滑动拼图验证码三种效果
Feb 15 Javascript
解决循环中setTimeout执行顺序的问题
Jun 20 Javascript
JavaScript对象的特性与实践应用深入详解
Dec 30 Javascript
vue路由--网站导航功能详解
Mar 29 Javascript
uniapp开发小程序的经验总结
Apr 08 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文本操作类
2006/11/25 PHP
php 执行系统命令的方法
2009/07/07 PHP
php radio 单选框获取与保持值的实现代码
2010/05/15 PHP
PHP生成验证码时“图像因其本身有错无法显示”的解决方法
2013/08/07 PHP
PHP CURL CURLOPT参数说明(curl_setopt)
2013/09/30 PHP
php生成唯一的订单函数分享
2015/02/02 PHP
完美解决phpdoc导出文档中@package的warning及Error的错误
2016/05/17 PHP
Smarty模板简单配置与使用方法示例
2016/05/23 PHP
javascript中substr,substring,slice.splice的区别说明
2010/11/25 Javascript
Jquery实现点击切换图片并隐藏显示内容(2种方法实现)
2013/04/11 Javascript
5分钟理解JavaScript中this用法分享
2013/11/09 Javascript
Js获取下拉框选定项的值和文本的实现代码
2014/02/26 Javascript
基于JS递归函数细化认识及实用实例(推荐)
2017/08/07 Javascript
AngularJS基于MVC的复杂操作实例讲解
2017/12/31 Javascript
微信小程序项目总结之点赞 删除列表 分享功能
2018/06/25 Javascript
vue项目持久化存储数据的实现代码
2018/10/01 Javascript
jQuery Ajax实现Select多级关联动态绑定数据的实例代码
2018/10/26 jQuery
jQuery实现简单三级联动效果
2020/09/05 jQuery
python中split方法用法分析
2015/04/17 Python
JavaScript中的模拟事件和自定义事件实例分析
2018/07/27 Python
python爬虫实现获取下一页代码
2020/03/13 Python
80年代复古T恤:TruffleShuffle
2018/07/02 全球购物
俄罗斯美容和健康网上商店:Созвездие Красоты
2019/07/23 全球购物
英国排名第一的LED灯泡网站:LED Bulbs
2019/09/03 全球购物
豪华床上用品、床单和浴室必需品:Peacock Alley
2019/09/04 全球购物
建筑工程技术应届生求职信
2013/11/17 职场文书
工艺工程师岗位职责
2014/03/04 职场文书
请假条的格式
2014/04/11 职场文书
2014年乡镇领导个人整改措施
2014/09/19 职场文书
第二批党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
标准单位租车协议书
2014/09/23 职场文书
成本会计实训报告
2014/11/05 职场文书
研究生就业推荐表导师评语
2014/12/31 职场文书
python必学知识之文件操作(建议收藏)
2021/05/30 Python
Redis集群的关闭与重启操作
2021/07/07 Redis