代码之家  ›  专栏  ›  技术社区  ›  The.Anti.9

get()只传递url中的前两个数据参数

  •  8
  • The.Anti.9  · 技术社区  · 15 年前

    我有一个对一个php页面的$.get()调用,该页面包含4个get参数。出于某种原因,尽管给了$.get()全部4个调用,但它只传递了前两个。当我在chrome中查看dev控制台时,它显示了被调用的url,并且只传递action和dbname。代码如下:

    $.get('util/util.php', { action: 'start', dbname: db, url: starturl, crawldepth: depth }, function(data) {
            if (data == 'true') {
                status = 1;
                $('#0').append(starturl + "<ul></ul>");
                $('#gobutton').hide();
                $('#loading').show("slow");
                while(status == 1) {
                    setTimeout("update()",10000);
    
                }
            } else {
                show_error("Form data incomplete!");
            }
        });
    

    这是我在开发人员控制台中看到的URL:

    http://localhost/pci/util/util.php?action=start&dbname=1hkxorr9ve1kuap2.db

    **编辑** 我被告知,我需要编码的网址,我正试图通过头部。我该如何用javascript编码,用php解码呢?

    2 回复  |  直到 15 年前
        1
  •  3
  •   GlenCrawford    15 年前

    你确定 starturl depth 变量已定义?简单的 alert() 在$.get()之前就可以检查了。

    对于您的编辑,您可以使用 encodeURIComponent 功能。在php中再次解码 urldecode . 他们都有一个字符串参数。

        2
  •  0
  •   FK82    15 年前

    可能需要检查输入字符串是否正确引用。在内部,jquery将使用 param() 方法。此方法将构造一个键和值的对象,如果不正确地引用键和值,则很可能无法解析该对象。

    @felix kling:jquery使用encodeuricomponent自动对参数字符串的键和值进行编码。