jQuery 中get 和post 方法傳值注意事項

來源:互聯網
上載者:User

標籤:使用   os   io   資料   cti   ar   代碼   html   

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

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.