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 迁移目录
Dec 18 Javascript
jQuery学习笔记[1] jQuery中的DOM操作
Dec 03 Javascript
JS模板实现方法
Apr 03 Javascript
javascript格式化json显示实例分析
Apr 21 Javascript
基于Jquery实现万圣节快乐特效
Nov 01 Javascript
不想让浏览器运行javascript脚本的方法
Nov 20 Javascript
jQuery使用$.ajax进行即时验证的方法
Dec 08 Javascript
谷歌Chrome浏览器扩展程序开发小记
Jan 06 Javascript
JS使用onerror捕获异常示例
Aug 03 Javascript
详解angular 中的自定义指令之详解API
Jun 20 Javascript
JavaScript面试出现频繁的一些易错点整理
Mar 29 Javascript
详解关于element级联选择器数据回显问题
Feb 20 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基于curl实现的股票信息查询类实例
2016/11/11 PHP
PHP获取中国时间(上海时区时间)及美国时间的方法
2017/02/23 PHP
php之可变变量的实例详解
2017/09/12 PHP
汉化英文版的Dreamweaver CS5并自动提示jquery
2010/11/25 Javascript
js 限制数字 js限制输入实现代码
2012/12/04 Javascript
javascript预加载图片、css、js的方法示例介绍
2013/10/14 Javascript
node.js中使用node-schedule实现定时任务实例
2014/06/03 Javascript
jQuery实现图片左右滚动特效
2020/04/20 Javascript
JS实现的简洁纵向滑动菜单(滑动门)效果
2015/10/19 Javascript
Bootstrap自动适应PC、平板、手机的Bootstrap栅格系统
2016/05/27 Javascript
详解AngularJs HTTP响应拦截器实现登陆、权限校验
2017/04/11 Javascript
基于daterangepicker日历插件使用参数注意的问题
2017/08/10 Javascript
vue element项目引入icon图标的方法
2018/06/06 Javascript
vue+springboot实现项目的CORS跨域请求
2018/09/05 Javascript
Jquery和CSS实现选择框重置按钮功能
2018/11/08 jQuery
JS数组去重的6种方法完整实例
2018/12/08 Javascript
基于layui内置模块(element常用元素的操作)
2019/09/20 Javascript
JS实现的雪花飘落特效示例
2019/12/03 Javascript
react的hooks的用法详解
2020/10/12 Javascript
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
2020/12/30 Vue.js
Django多数据库的实现过程详解
2019/08/01 Python
Python测试线程应用程序过程解析
2019/12/31 Python
解决python 执行sql语句时所传参数含有单引号的问题
2020/06/06 Python
美国一家专业的太阳镜网上零售商:Solstice太阳镜
2016/07/25 全球购物
巴西最大的体育用品商城:Netshoes巴西
2016/11/29 全球购物
百丽国际旗下购物网站:优购
2017/02/28 全球购物
XD健身器材:Kevlar球、Crossfit健身球
2019/03/26 全球购物
网上开店必备创业计划书
2014/01/26 职场文书
招聘与培训专员岗位职责
2014/01/30 职场文书
酒鬼酒广告词
2014/03/21 职场文书
入党思想汇报怎么写
2014/04/03 职场文书
代收款委托书范本
2014/10/01 职场文书
2015年七夕爱情寄语
2015/03/24 职场文书
Pytorch 使用tensor特定条件判断索引
2021/04/08 Python
springboot+WebMagic+MyBatis爬虫框架的使用
2021/08/07 Java/Android
React更新渲染原理深入分析
2022/12/24 Javascript