zoukankan      html  css  js  c++  java
  • jQuery 中get 和post 方法传值注意事项

    用 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 参数中。

    总之方法是死的,人是活的,怎么用还要看实际情况。子曾经曰过:实践是检验真理的唯一标准。没事做做实验,掌握知识更牢固。
  • 相关阅读:
    PHP 将二维数组中某列值作为数组的键名
    MySQL 8下忘密码后重置密码
    单一职责原则
    Linux下安装SVN服务端小白教程
    go 代码玩耍
    centos7 docker开启认证的远程端口2376配置教程
    Dockerfile RUN,CMD,ENTRYPOINT命令区别
    wait-for-it.sh脚本控制docker-compose启动顺序详解
    阿里云服务器漏洞修复_2020.5.22
    Let's Encrypt 免费通配符 SSL 证书申请教程
  • 原文地址:https://www.cnblogs.com/xiaochao12345/p/3885511.html
Copyright © 2011-2022 走看看