隨筆-31  評(píng)論-2  文章-0  trackbacks-0

          用 jQuery 的都知道,jQuery 的 get 和 post 方法有三個(gè)參數(shù):地址,數(shù)據(jù) 和回調(diào)函數(shù),但我們知道地址也可以跟隨數(shù)據(jù)的(形如:get_data.php?v1=1&v2=2),而且第二個(gè)參數(shù)可以省略,即第二個(gè)參數(shù)可 以直接寫回調(diào)函數(shù),那么數(shù)據(jù)寫在地址后面和寫在 data 參數(shù)里有什么區(qū)別呢?

          剛剛做了幾個(gè)實(shí)驗(yàn),看看下面的代碼就清楚了:
          以下內(nèi)容需要回復(fù)才能看到

          jquery_data.php

          echo "post: ";
          print_r($_POST);
          echo "get: ";
          print_r($_GET);
          ?>

          jquery_test.html

          實(shí)驗(yàn)1:

          $(function() {
          // post 方法,兩處都有數(shù)據(jù)
          $.post('jquery_data.php?v1=1', {v2: 2}, function(data) {
          $('

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

          返回結(jié)果:
          post: Array
          (
          [v2] => 2
          )
          get: Array
          (
          [v1] => 1
          )

          實(shí)驗(yàn)2:

          $(function()
          {
          // post 方法,數(shù)據(jù)在地址后面, 第二個(gè)參數(shù)為回調(diào)函數(shù)
          $.post('jquery_data.php?v1=1', function(data)
          {
          $('<pre/>').append(data).appendTo('body');
          });
          });

          返回結(jié)果,數(shù)據(jù)在 get 中:
          post: Array
          (
          )
          get: Array
          (
          [v1] => 1
          )

          實(shí)驗(yàn)3:

          $(function()
          {
          // get 方法,用 data 參數(shù)傳值
          $.get('jquery_data.php', {v2: 2}, function(data)
          {
          $('<pre/>').append(data).appendTo('body');
          });
          });

          返回結(jié)果,數(shù)據(jù)在 get 中:
          post: Array
          (
          )
          get: Array
          (
          [v2] => 2
          )

          實(shí)驗(yàn)4:

          $(function()
          {
          // get 方法,兩處都有數(shù)據(jù)
          $.get('jquery_data.php?v1=1', {v2: 2}, function(data)
          {
          $('<pre/>').append(data).appendTo('body');
          });
          });

          返回結(jié)果,兩處數(shù)據(jù)被合并了,都在 get 中:
          post: Array
          (
          )
          get: Array
          (
          [v1] => 1
          [v2] => 2
          )

          實(shí)驗(yàn)5:

          $(function()
          {
          // get 方法,兩處都有數(shù)據(jù),且變量名相同
          $.get('jquery_data.php?v2=1', {v2: 2}, function(data)
          {
          $('<pre/>').append(data).appendTo('body');
          });
          });

          返回結(jié)果,數(shù)據(jù)在 get 中,且 data 參數(shù)中的數(shù)據(jù)覆蓋了地址后面的數(shù)據(jù):
          post: Array
          (
          )
          get: Array
          (
          [v2] => 2
          )

          通過這幾個(gè)簡單的小例子不難看出,地址后面的數(shù)據(jù)永遠(yuǎn)是以 get 形式傳遞的,無論使用的是 get 方法還是 post 方法;而 data 參數(shù)中的數(shù)據(jù)是根據(jù)方法決定傳遞方式的。

          因此,為了避免混淆,建議大家盡量不要把數(shù)據(jù)寫在地址后面,而是統(tǒng)一放在 data 參數(shù)中。

          當(dāng)然,如果你想在用 post 方法時(shí),同時(shí)利用 get 傳值,那么就可以把要以 get 方式傳遞的數(shù)據(jù)寫在地址后面,把要以 post 方式傳遞的數(shù)據(jù)寫在 data 參數(shù)中。

          總之方法是死的,人是活的,怎么用還要看實(shí)際情況。子曾經(jīng)曰過:實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)。沒事做做實(shí)驗(yàn),掌握知識(shí)更牢固。
          posted on 2009-07-29 19:22 xiaoxinchen 閱讀(920) 評(píng)論(1)  編輯  收藏

          評(píng)論:
          # re: jQuery 中g(shù)et 和post 方法傳值需要注意的[未登錄] 2009-12-19 15:37 | a

          只有注冊用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 潮州市| 祥云县| 马山县| 虞城县| 嫩江县| 元阳县| 当涂县| 无棣县| 福贡县| 全南县| 许昌县| 汤阴县| 正安县| 云梦县| 平潭县| 东海县| 遂川县| 抚宁县| 台中市| 托里县| 美姑县| 威海市| 海兴县| 黄龙县| 新干县| 花莲市| 唐河县| 迁西县| 武陟县| 大同市| 德庆县| 桃园市| 仙居县| 临洮县| 文成县| 瑞金市| 丹巴县| 吴堡县| 枣强县| 昆山市| 扶风县|