首页 > web前端 > js教程 > 正文

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

WBOY
发布: 2016-05-16 16:40:07
原创
1121 人浏览过

用 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&#63;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&#63;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 参数中。

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

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板