jQuery 中get 和post 方法传值需要注意的问题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

jQuery 中get 和post 方法传值需要注意的

用 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)

{

$('

').append(data).appendTo('body');

});

});

返回结果,数据在 get 中:

post: Array

(

)

get: Array

(

[v1] => 1

)

实验3:

$(function()

{

// get 方法,用 data 参数传值

$.get('jquery_data.php', {v2: 2}, function(data) {

$('

').append(data).appendTo('body'); });

});

返回结果,数据在 get 中:

post: Array

(

)

get: Array

(

[v2] => 2

)

实验4:

$(function()

{

// get 方法,两处都有数据

$.get('jquery_data.php?v1=1', {v2: 2}, function(data) {

$('

').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)

{

$('

').append(data).appendTo('body');

});

});

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

(

)

get: Array

(

[v2] => 2

)

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

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

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

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

相关文档
最新文档