jQuery get和post 方法傳值注意事項
更新時間:2009年11月03日 23:25:11 作者:
用 jQuery 的都知道,jQuery 的 get 和 post 方法有三個參數(shù):地址,數(shù)據(jù) 和 回調(diào)函數(shù),但我們知道地址也可以跟隨數(shù)據(jù)的(形如:get_data.php?v1=1&v2=2),而且第二個參數(shù)可以省略,即第二個參數(shù)可以直接寫回調(diào)函數(shù),那么數(shù)據(jù)寫在地址后面和寫在 data 參數(shù)里有什么區(qū)別呢?
剛剛做了幾個實驗,看看下面的代碼就清楚了:
以下內(nèi)容需要回復(fù)才能看到
jquery_data.php
<?php
echo "post: ";
print_r($_POST);
echo "get: ";
print_r($_GET);
?>
jquery_test.html
實驗1:
$(function()
{
// post 方法,兩處都有數(shù)據(jù)
$.post('jquery_data.php?v1=1', {v2: 2}, function(data)
{
$('<pre/>').append(data).appendTo('body');
});
});
/*
返回結(jié)果:
post: Array
(
[v2] => 2
)
get: Array
(
[v1] => 1
)
*/
實驗2:
$(function()
{
// post 方法,數(shù)據(jù)在地址后面, 第二個參數(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
)
*/
實驗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
)
*/
實驗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
)
*/
實驗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
)
*/
通過這幾個簡單的小例子不難看出,地址后面的數(shù)據(jù)永遠(yuǎn)是以 get 形式傳遞的,無論使用的是 get 方法還是 post 方法;而 data 參數(shù)中的數(shù)據(jù)是根據(jù)方法決定傳遞方式的。
因此,為了避免混淆,建議大家盡量不要把數(shù)據(jù)寫在地址后面,而是統(tǒng)一放在 data 參數(shù)中。
當(dāng)然,如果你想在用 post 方法時,同時利用 get 傳值,那么就可以把要以 get 方式傳遞的數(shù)據(jù)寫在地址后面,把要以 post 方式傳遞的數(shù)據(jù)寫在 data 參數(shù)中。
總之方法是死的,人是活的,怎么用還要看實際情況。子曾經(jīng)曰過:實踐是檢驗真理的唯一標(biāo)準(zhǔn)。沒事做做實驗,掌握知識更牢固.
以下內(nèi)容需要回復(fù)才能看到
jquery_data.php
復(fù)制代碼 代碼如下:
<?php
echo "post: ";
print_r($_POST);
echo "get: ";
print_r($_GET);
?>
jquery_test.html
實驗1:
復(fù)制代碼 代碼如下:
$(function()
{
// post 方法,兩處都有數(shù)據(jù)
$.post('jquery_data.php?v1=1', {v2: 2}, function(data)
{
$('<pre/>').append(data).appendTo('body');
});
});
/*
返回結(jié)果:
post: Array
(
[v2] => 2
)
get: Array
(
[v1] => 1
)
*/
實驗2:
$(function()
{
// post 方法,數(shù)據(jù)在地址后面, 第二個參數(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
)
*/
實驗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
)
*/
實驗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
)
*/
實驗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
)
*/
通過這幾個簡單的小例子不難看出,地址后面的數(shù)據(jù)永遠(yuǎn)是以 get 形式傳遞的,無論使用的是 get 方法還是 post 方法;而 data 參數(shù)中的數(shù)據(jù)是根據(jù)方法決定傳遞方式的。
因此,為了避免混淆,建議大家盡量不要把數(shù)據(jù)寫在地址后面,而是統(tǒng)一放在 data 參數(shù)中。
當(dāng)然,如果你想在用 post 方法時,同時利用 get 傳值,那么就可以把要以 get 方式傳遞的數(shù)據(jù)寫在地址后面,把要以 post 方式傳遞的數(shù)據(jù)寫在 data 參數(shù)中。
總之方法是死的,人是活的,怎么用還要看實際情況。子曾經(jīng)曰過:實踐是檢驗真理的唯一標(biāo)準(zhǔn)。沒事做做實驗,掌握知識更牢固.
您可能感興趣的文章:
- PHP中使用cURL實現(xiàn)Get和Post請求的方法
- Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法總結(jié)
- java使用httpclient模擬post請求和get請求示例
- php發(fā)送get、post請求的6種方法簡明總結(jié)
- php中$_REQUEST、$_POST、$_GET的區(qū)別和聯(lián)系小結(jié)
- php中使用Curl、socket、file_get_contents三種方法POST提交數(shù)據(jù)
- android之HttpPost&HttpGet使用方法介紹
- python通過get,post方式發(fā)送http請求和接收http響應(yīng)的方法
- ajax中g(shù)et和post的說明及使用與區(qū)別
- C#使用GET、POST請求獲取結(jié)果
相關(guān)文章
在jquery boxy中添加百度地圖坐標(biāo)拾取注意流程
這篇文章主要介紹了在jquery boxy中添加百度地圖坐標(biāo)拾取注意流程,需要的朋友可以參考下2014-04-04jQuery animate和CSS3相結(jié)合實現(xiàn)緩動追逐效果附源碼下載
這篇文章主要介紹了jQuery animate和CSS3相結(jié)合實現(xiàn)緩動追逐效果的相關(guān)資料,需要的朋友可以參考下2016-04-04JQuery 實現(xiàn)在同一頁面錨點鏈接之間的平滑滾動
JQuery 原來比我想象的要強(qiáng)大的多,本文用 JQuery 實現(xiàn)錨點鏈接之間的平滑滾動,在同一頁面的錨點鏈接之間實現(xiàn)平滑的滾動2014-10-10jQuery+Ajax+PHP彈出層異步登錄效果(附源碼下載)
本文我們給大家介紹如何使用jQuery+Ajax+PHP彈出層異步登錄的應(yīng)用。感興趣的朋友通過本文學(xué)習(xí)吧2016-05-05兩種方法解決javascript url post 特殊字符轉(zhuǎn)義 + & #
本文主要介紹javascript使用url傳值的時候數(shù)據(jù)丟失的問題,希望對大家有所幫助。2016-04-04