我对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中对其进行解码?
答案 0 :(得分:3)
您确定starturl
和depth
变量是否已定义? $ .get()之前的简单alert()
足以检查。
关于编辑,您可以使用encodeURIComponent
函数在JavaScript中对字符串进行编码。然后使用urldecode
在PHP中再次解码它。他们都采用一个字符串参数。
答案 1 :(得分:0)
可能您需要检查输入字符串是否被正确引用。在内部,jQuery将使用其param()
方法在您指定的参数映射中构建参数字符串。此方法将构造键和值的对象,如果您错误地引用了键和值,则该对象可能无法解析。
@Felix Kling:jQuery使用encodeURIComponent自动编码参数字符串的键和值。