当前位置: 首页 > 图文教程 > 网络编程 > Javascript > jQuery get和post 方法传值注意事项

Javascript
一个简单的收缩菜单效果
HTML-CSS群中单选引发的“事件”
打开超链需要“确认”对话框的方法
用js实现网页上模仿桌面右键菜单
可以文本显示的公告栏的js代码
[原创]js与自动伸缩图片 自动缩小图片的多浏览器兼容的方法总结
极致之美:百行代码实现全新智能语言
表单(FORM)的一些实用效果代码
[原创]提供复制本站内容时出现,该文章转自等字样的js代码
javascript中巧用“闭包”实现程序的暂停执行功能
给网站上的广告“加速”显示的方法
[原创]jser必看的破解javascript各种加密的反向思维方法
用javascript代替marquee的滚动字幕效果代码
静态页面下用javascript操作ACCESS数据库(读增改删)的代码
[原创]由亿起发(eqifa.com)的页面发现顶部的http://16a.us/8.js想到的js解密
[原创]站长必须要知道的javascript广告代码
js defineSetter -给js的 "class"自动增加一个set的属性(方法)
Javascript & DHTML 实例编程(教程)(三)初级实例篇1—上传文件控件实例
WordPress 插件:CoolCode使用方法与下载
文档处理系列:随时更新

Javascript 中的 jQuery get和post 方法传值注意事项


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 484 ::
收藏到网摘: n/a

用 jQuery 的都知道,jQuery 的 get 和 post 方法有三个参数:地址,数据 和 回调函数,但我们知道地址也可以跟随数据的(形如:get_data.php?v1=1&v2=2),而且第二个参数可以省略,即第二个参数可以直接写回调函数,那么数据写在地址后面和写在 data 参数里有什么区别呢? 刚刚做了几个实验,看看下面的代码就清楚了:
以下内容需要回复才能看到
jquery_data.php
复制代码 代码如下:

<?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)
{
$('<pre/>').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 参数中。
总之方法是死的,人是活的,怎么用还要看实际情况。子曾经曰过:实践是检验真理的唯一标准。没事做做实验,掌握知识更牢固.