首頁 >web前端 >js教程 >jQuery中get和post方法傳值測試及注意事項_jquery

jQuery中get和post方法傳值測試及注意事項_jquery

WBOY
WBOY原創
2016-05-16 16:40:071139瀏覽

用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 參數中。

總之方法是死的,人是活的,怎麼用還要看實際狀況。子曾經曰過:實踐是檢驗真理的唯一標準。沒事做實驗,掌握知識更強。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn