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入门基础之私有变量
Feb 23 Javascript
js动态添加onload、onresize、onscroll事件(另类方法)
Dec 26 Javascript
JS的千分位算法实现思路
Jul 31 Javascript
javascript中取前n天日期的两种方法分享
Jan 26 Javascript
JavaScript实现添加及删除事件的方法小结
Aug 04 Javascript
jquery+ajax+text文本框实现智能提示完整实例
Jul 09 Javascript
jQuery布局组件EasyUI Layout使用方法详解
Feb 28 Javascript
JavaScript阻止表单提交方法(附代码)
Aug 15 Javascript
jQuery Dom元素操作技巧
Feb 04 jQuery
koa2 用户注册、登录校验与加盐加密的实现方法
Jul 22 Javascript
vue 指令和过滤器的基本使用(品牌管理案例)
Nov 04 Javascript
详解JavaScript匿名函数和闭包
Jul 10 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/07/12 PHP
有关php运算符的知识大全
2011/11/03 PHP
解析php dirname()与__FILE__常量的应用
2013/06/24 PHP
PHP Class&amp;Object -- PHP 自排序二叉树的深入解析
2013/06/25 PHP
Destoon实现多表查询示例
2014/08/21 PHP
深入浅出php socket编程
2015/05/13 PHP
ThinkPHP使用getlist方法实现数据搜索功能示例
2017/05/08 PHP
Thinkphp页面跳转设置跳转等待时间的操作
2019/10/16 PHP
心扬JS分页函数代码
2010/09/10 Javascript
JSON.stringify 语法实例讲解
2012/03/14 Javascript
javascript学习笔记(六) Date 日期类型
2012/06/19 Javascript
多选列表框动态添加,移动,删除,全选等操作的简单实例
2014/01/13 Javascript
Javascript中引用示例介绍
2014/02/21 Javascript
js限制文本框只能输入数字方法小结
2014/06/16 Javascript
限制上传文件大小和格式的jQuery插件实例
2015/01/24 Javascript
iframe跨域通信封装详解
2015/08/11 Javascript
BootStrap实现邮件列表的分页和模态框添加邮件的功能
2016/10/13 Javascript
jQuery使用DataTable实现删除数据后重新加载功能
2017/02/27 Javascript
nodejs使用redis作为缓存介质实现的封装缓存类示例
2018/02/07 NodeJs
JS实现同一DOM元素上onClick事件与onDblClick事件并存的解决方法
2018/06/07 Javascript
JavaScript实现单图片上传并预览功能
2019/09/30 Javascript
Javascript组合继承方法代码实例解析
2020/04/02 Javascript
[01:02:53]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第二局
2016/03/06 DOTA
[59:48]DOTA2-DPC中国联赛 正赛 VG vs Magma BO3 第一场 1月26日
2021/03/11 DOTA
python学习 流程控制语句详解
2016/06/01 Python
Python http接口自动化测试框架实现方法示例
2018/12/06 Python
Python面向对象程序设计示例小结
2019/01/30 Python
int在python中的含义以及用法
2019/06/27 Python
Python Django 封装分页成通用的模块详解
2019/08/21 Python
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
2020/12/14 Python
如何查看在weblogic中已经发布的EJB
2012/06/01 面试题
安全大检查反思材料
2014/01/31 职场文书
人身损害赔偿协议书范本
2014/09/27 职场文书
SQL SERVER中常用日期函数的具体使用
2021/04/08 SQL Server
利用For循环遍历Python字典的三种方法实例
2022/03/25 Python
使用Nginx+Tomcat实现负载均衡的全过程
2022/05/30 Servers