jQuery中get和post方法传值测试及注意事项


Posted in Javascript onAugust 08, 2014

用 jQuery 的都知道,jQuery 的 get 和 post 方法有三个参数:地址,数据 和回调函数,但我们知道地址也可以跟随数据的(形如:get_data.php?v1=1&v2=2),而且第二个参数可以省略,即第二个参数可 以直接写回调函数,那么数据写在地址后面和写在 data 参数里有什么区别呢?
刚刚做了几个实验,看看下面的代码就清楚了:
以下内容需要回复才能看到

jquery_data.php

echo "post: ";
print_r($_POST);
echo "get: ";
print_r($_GET);
?>

jquery_test.html

实验1:

$(function() {
// post 方法,两处都有数据
$.post('jquery_data.php?v1=1', {v2: 2}, function(data) {
$('
').append(data).appendTo('body');
});
});

返回结果:

post: Array
(
[v2] => 2
)
get: Array
(
[v1] => 1
)

实验2:

$(function()
{
// post 方法,数据在地址后面, 第二个参数为回调函数
$.post('jquery_data.php?v1=1', function(data)
{
$('<pre/>').append(data).appendTo('body');
});
});

返回结果,数据在 get 中:

post: Array
(
)
get: Array
(
[v1] => 1
)

实验3:

$(function()
{
// get 方法,用 data 参数传值
$.get('jquery_data.php', {v2: 2}, function(data)
{
$('<pre/>').append(data).appendTo('body');
});
});

返回结果,数据在 get 中:

post: Array
(
)
get: Array
(
[v2] => 2
)

实验4:

$(function()
{
// get 方法,两处都有数据
$.get('jquery_data.php?v1=1', {v2: 2}, function(data)
{
$('<pre/>').append(data).appendTo('body');
});
});

返回结果,两处数据被合并了,都在 get 中:

post: Array
(
)
get: Array
(
[v1] => 1
[v2] => 2
)

实验5:

$(function()
{
// get 方法,两处都有数据,且变量名相同
$.get('jquery_data.php?v2=1', {v2: 2}, function(data)
{
$('<pre/>').append(data).appendTo('body');
});
});

返回结果,数据在 get 中,且 data 参数中的数据覆盖了地址后面的数据:

post: Array
(
)
get: Array
(
[v2] => 2
)

通过这几个简单的小例子不难看出,地址后面的数据永远是以 get 形式传递的,无论使用的是 get 方法还是 post 方法;而 data 参数中的数据是根据方法决定传递方式的。

因此,为了避免混淆,建议大家尽量不要把数据写在地址后面,而是统一放在 data 参数中。

当然,如果你想在用 post 方法时,同时利用 get 传值,那么就可以把要以 get 方式传递的数据写在地址后面,把要以 post 方式传递的数据写在 data 参数中。

总之方法是死的,人是活的,怎么用还要看实际情况。子曾经曰过:实践是检验真理的唯一标准。没事做做实验,掌握知识更牢固。

Javascript 相关文章推荐
你未必知道的JavaScript和CSS交互的5种方法
Apr 02 Javascript
APP中javascript+css3实现下拉刷新效果
Jan 27 Javascript
noty ? jQuery通知插件全面解析
May 18 Javascript
【经验总结】编写JavaScript代码时应遵循的14条规律
Jun 20 Javascript
JavaScript用JSONP跨域请求数据实例详解
Jan 06 Javascript
ajax实现动态下拉框示例
Jan 10 Javascript
Vue.js实现文章评论和回复评论功能
May 30 Javascript
jQuery输入框密码的显示隐藏【代码分享】
Apr 29 jQuery
JS实现的汉字与Unicode码相互转化功能分析
May 25 Javascript
微信小程序使用map组件实现获取定位城市天气或者指定城市天气数据功能
Jan 22 Javascript
laypage+SpringMVC实现后端分页
Jul 27 Javascript
Node.js开发之套接字(socket)编程入门示例
Nov 05 Javascript
JSON.stringify转换JSON时日期时间不准确的解决方法
Aug 08 #Javascript
js事件监听机制(事件捕获)总结
Aug 08 #Javascript
使用jquery.qrcode生成彩色二维码实例
Aug 08 #Javascript
兼容最新firefox、chrome和IE的javascript图片预览实现代码
Aug 08 #Javascript
js调试工具console.log()方法查看js代码的执行情况
Aug 08 #Javascript
JS创建类和对象的两种不同方式
Aug 08 #Javascript
将HTML格式的String转化为HTMLElement的实现方法
Aug 07 #Javascript
You might like
十天学会php之第四天
2006/10/09 PHP
php抓取https的内容的代码
2010/04/06 PHP
PHP 防注入函数(格式化数据)
2011/08/08 PHP
PHP基于关联数组20行代码搞定约瑟夫问题示例
2017/11/07 PHP
PDO::getAvailableDrivers讲解
2019/01/28 PHP
Laravel6.0.4中将添加计划任务事件的方法步骤
2019/10/15 PHP
70+漂亮且极具亲和力的导航菜单设计国外网站推荐
2011/09/20 Javascript
js获取UserControl内容为拼html时提供方便
2014/11/02 Javascript
轻松学习jQuery插件EasyUI EasyUI实现树形网络基本操作(2)
2015/11/30 Javascript
js拖拽的原型声明和用法总结
2016/04/04 Javascript
Bootstrap CSS组件之导航(nav)
2016/12/17 Javascript
详解JavaScript按概率随机生成事件
2017/08/02 Javascript
微信小程序mpvue点击按钮获取button值的方法
2019/05/29 Javascript
通过说明与示例了解js五种设计模式
2019/06/17 Javascript
小程序最新获取用户昵称和头像的方法总结
2019/09/23 Javascript
python使用cookielib库示例分享
2014/03/03 Python
Python使用ftplib实现简易FTP客户端的方法
2015/06/03 Python
Python基于PycURL自动处理cookie的方法
2015/07/25 Python
Python操作json的方法实例分析
2018/12/06 Python
Django中使用 Closure Table 储存无限分级数据
2019/06/06 Python
python傅里叶变换FFT绘制频谱图
2019/07/19 Python
python re.sub()替换正则的匹配内容方法
2019/07/22 Python
在pycharm中为项目导入anacodna环境的操作方法
2020/02/12 Python
Python itertools.product方法代码实例
2020/03/27 Python
Python 实现将numpy中的nan和inf,nan替换成对应的均值
2020/06/08 Python
python实现定时发送邮件到指定邮箱
2020/12/23 Python
英国IT硬件供应商,定制游戏PC:Mesh Computers
2019/03/28 全球购物
如何用Java判断一个文件或目录是否存在
2012/11/19 面试题
敬老院献爱心活动总结
2014/07/08 职场文书
讲文明知礼仪演讲稿
2014/09/13 职场文书
法学专业求职信范文
2015/03/19 职场文书
2015年暑期社会实践总结
2015/07/13 职场文书
Django项目配置Memcached和Redis, 缓存选择哪个更有优势
2021/04/06 Python
JVM钩子函数的使用场景详解
2021/08/23 Java/Android
一次项目中Thinkphp绕过禁用函数的实战记录
2021/11/17 PHP
Anaconda安装pytorch和paddle的方法步骤
2022/04/03 Python