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

用 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 参数中。
总之方法是死的,人是活的,怎么用还要看实际情况。子曾经曰过:实践是检验真理的唯一标准。没事做做实验,掌握知识更牢固.
详细出处参考:http://www.jb51.net/article/20732.htm

时间: 2024-12-13 14:17:36

jQuery get和post 方法传值注意事项的相关文章

jQuery get和post 方法传值注意事项_jquery

刚刚做了几个实验,看看下面的代码就清楚了: 以下内容需要回复才能看到 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',

jquery插件spinner使用方法与注意事项

jQuery数字加减插件 左右加减数字像京东提交订单时目前使用的是左右加减数字的效果,这个效果直接明了,操作简单.我们使用jquery.spinner.js插件实现左右加减数字,调用方法非常简单,请看演示示例1. <input type="text" class="spinner"/> 调用也非常简单,先载入jquery库文件和jquery.spinner.js,然后使用以下代码: $('.spinner').spinner(); Bootstrap风格

yii ajax-yii框架里怎么实现Jquery Ajax方法传值到控制器action方法里

问题描述 yii框架里怎么实现Jquery Ajax方法传值到控制器action方法里 $.ajax({ type:'post', url:"/www/index.php?r=home/CkUser",//地址写什么才是对的 data:{"name":val}, success:function(msg){ alert("正确"); $("#nameinfo").html(msg); }, 解决方案 地址直接写根下的控制器下的

载入jQuery库的最佳方法详细说明及实现代码_jquery

由于目前Google的不稳定,而国内没有好的同类服务,故这已不是最优方案.当然,你把Google库路径换成国内稳定且快速的路径(如果存在),依然可以受用此方法带来的各种好处.即便如此,综合考虑的话,还是Google的最合适. 网站开发的项目中使用Google CDN的jQuery库虽然加载速度很快,但调用本地服务器的库才可以确保万无一失.而使用Wordpress内置jQuery库的话,其末尾防止JS库 冲突而加入的jQuery.noConflict()使得主题中所有jQuery代码都要做一些小修

jQuery常用且重要方法汇总_jquery

1.jquery  data(name) data() 方法向被选元素附加数据,或者从被选元素获取数据. $("#btn1").click(function(){ $("div").data("greeting", "Hello World"); }); $("#btn2").click(function(){ alert($("div").data("greeting&quo

浅谈SEO过程中网页关键词的修改方法与注意事项

在SEO的相关论坛中经常会看到一些网友发帖说,想去修改一下自己的网页标题或者关键词,因为大部分想修改的朋友都是没有把握自己到底能不能修改完毕之后,百度不会将自己的网站或者网页进行降权或者K的处理.首先我们必须要弄明白三个问题: 1.百度对于关键词修改的处理方式与处理原则; 2.我们为什么要修改网站或者网页关键词; 3.目前百度虽然是一个中文引擎功能非常强大的搜索引擎,我们还的考虑一下,我们的流量分布情况,到底是百度的多还是谷歌的多,还是搜狗的多,还是Bing的多,还是Yahoo的多,还是soso

JQuery 的跨域方法

JQuery 的跨域方法 可跨新浪.腾讯.经网等任意网站 因发现有不少博友发园内短信问及JS的跨域问题,我想很多程序员的脑海里面还认为JS是不能跨域的,其实这是一个错误的观点:有很多人在网上找其解决方法,教其用IFRAME去解决的文章很多,真有那么复杂吗?其实很简单的,如果你用JQUERY,一个GETJSON方法就搞定了,而且是一行代码搞定. 下面开始贴出方法.      //跨域(可跨所有域名)        $.getJSON("http://user.hnce.com.cn/getregi

jquery分割字符串的方法

  本文实例讲述了jquery分割字符串的方法.分享给大家供大家参考.具体如下: 一.问题: 返回的数据是字符串用特殊字符@分割sss@vvv,怎么返回给2个id $("#a").text(data) $("#b").text(data) 怎么让他们同时显示,分别对应字符串的2个部分 a对应sss,b对应vvv 二.解决方法: ? 1 2 3 var arr = 'sss@vvv'.split('@'); $("#a").text(arr[0])

Win7系统添加内存的方法及注意事项介绍

Win7系统添加内存的方法及注意事项介绍   解决方法一: 内存对台式机整体性能的影响众所周知,而笔记本电脑其内存多数采用共享方式同时负担内存.显存等存储功能,所以相比之下笔记本电脑内存对于整机性能的影响更为显著, 随着软件容量的不断增大,版本的不断升级,同时也对系统性能提出了更高的要求,过去笔记本电脑主流的1G内存配置越来越不能满足我们的需求,尤其是进行图像处理时甚至会出现内存不足的情况.所以,升级内存显得很有必要. 解决方法二: 1.体积 由于笔记本电脑整合性高,设计精密,所以在相同容量下尽