JQuery .get()只在url中传递前两个数据参数

时间:2010-05-02 09:54:17

标签: php javascript jquery ajax

我对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

**编辑** 我被告知我需要编码我试图通过标头传递的URL。我将如何在javascript中对其进行编码,并在php中对其进行解码?

2 个答案:

答案 0 :(得分:3)

您确定starturldepth变量是否已定义? $ .get()之前的简单alert()足以检查。

关于编辑,您可以使用encodeURIComponent函数在JavaScript中对字符串进行编码。然后使用urldecode在PHP中再次解码它。他们都采用一个字符串参数。

答案 1 :(得分:0)

可能您需要检查输入字符串是否被正确引用。在内部,jQuery将使用其param()方法在您指定的参数映射中构建参数字符串。此方法将构造键和值的对象,如果您错误地引用了键和值,则该对象可能无法解析。

@Felix Kling:jQuery使用encodeURIComponent自动编码参数字符串的键和值。

相关问题