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 相关文章推荐
JavaScript 面向对象编程(2) 定义类
May 18 Javascript
JavaScript高级程序设计 阅读笔记(十二) js内置对象Math
Aug 14 Javascript
JS 添加千分位与去掉千分位的示例
Jul 11 Javascript
javascript Array.prototype.slice的使用示例
Nov 14 Javascript
HTML5+setCutomValidity()函数验证表单实例分享
Apr 24 Javascript
jquery获取多个checkbox的值异步提交给php
Jul 07 Javascript
jQuery Uploadify 上传插件出现Http Error 302 错误的解决办法
Dec 12 Javascript
javascript计时器编写过程与实现方法
Feb 29 Javascript
JS基于onclick事件实现单个按钮的编辑与保存功能示例
Feb 13 Javascript
Angular Material Icon使用详解
Nov 07 Javascript
vue 项目build错误异常的解决方法
Apr 22 Javascript
vue打开子组件弹窗都刷新功能的实现
Sep 21 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
PHP的面试题集
2006/11/19 PHP
PHP iconv 函数转gb2312的bug解决方法
2009/10/11 PHP
PHP 数组教程 定义数组
2009/10/23 PHP
PHP中foreach循环中使用引用要注意的地方
2011/01/02 PHP
php实现memcache缓存示例讲解
2013/12/04 PHP
利用yahoo汇率接口实现实时汇率转换示例 汇率转换器
2014/01/14 PHP
php实现分页显示
2015/11/03 PHP
php实现二叉树中和为某一值的路径方法
2018/10/14 PHP
Jquery作者John Resig自己封装的javascript 常用函数
2009/11/09 Javascript
Javascript类定义语法,私有成员、受保护成员、静态成员等介绍
2011/12/08 Javascript
基于jQuery的倒计时实现代码
2012/05/30 Javascript
js字符串转换成xml对象并使用技巧解读
2013/04/18 Javascript
判断输入是否为空,获得输入类型的JS代码
2013/10/30 Javascript
jquery在项目中做复选框时遇到的一些问题笔记
2013/11/17 Javascript
JavaScript的作用域和块级作用域概念理解
2014/09/21 Javascript
jQuery+PHP打造滑动开关效果
2014/12/16 Javascript
JavaScript实现函数返回多个值的方法
2015/06/09 Javascript
win7下安装配置node.js+express开发环境
2015/12/06 Javascript
JavaScript简单实现鼠标移动切换图片的方法
2016/02/23 Javascript
js HTML5 Canvas绘制转盘抽奖
2020/09/13 Javascript
原生js实现无限循环轮播图效果
2017/01/20 Javascript
vue.js利用Object.defineProperty实现双向绑定
2017/03/09 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
2019/10/23 Javascript
JavaScript运动原理基础知识详解
2020/04/02 Javascript
Windows下Python的Django框架环境部署及应用编写入门
2016/03/10 Python
Python对列表中的各项进行关联详解
2017/08/15 Python
python 输入一个数n,求n个数求乘或求和的实例
2018/11/13 Python
详解python安装matplotlib库三种失败情况
2020/07/28 Python
用Python实现职工信息管理系统
2020/12/30 Python
利用canvas实现图片下载功能来实现浏览器兼容问题
2019/05/31 HTML / CSS
几个数据库方面的面试题
2016/07/01 面试题
国际商务专业职业生涯规划书范文
2014/01/17 职场文书
公司领导班子民主生活会对照检查材料
2014/10/02 职场文书
2015年学校远程教育工作总结
2015/07/20 职场文书
团干部培训班心得体会
2016/01/06 职场文书
pytorch model.cuda()花费时间很长的解决
2021/06/01 Python