Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在url中传递可验证的异常行为_Javascript_Php_Variables_Url - Fatal编程技术网

Javascript 在url中传递可验证的异常行为

Javascript 在url中传递可验证的异常行为,javascript,php,variables,url,Javascript,Php,Variables,Url,我试图通过URL传递一个变量,它在Chrome和Firefox中做了一些非常奇怪的事情,似乎在操作系统中也做了同样的事情 问题是,我试图以这种方式在URL中发送一些变量: document.location.href = 'http://www.ihaves.org/main.php?id='+facebookUser+'&first_name='+facebookName+'&last_name='+facebookName+'&locat='+locat_+'&

我试图通过URL传递一个变量,它在Chrome和Firefox中做了一些非常奇怪的事情,似乎在操作系统中也做了同样的事情

问题是,我试图以这种方式在URL中发送一些变量:

document.location.href = 'http://www.ihaves.org/main.php?id='+facebookUser+'&first_name='+facebookName+'&last_name='+facebookName+'&locat='+locat_+'&locationlat='+facebookLat+'&locationlon='+facebookLon+'&mode=facebook';
奇怪的结果是:

当预期结果应该是这个时:(摘自IE)

我发现问题是一个名为“locat”的变量,如果我把它取出来,那么一切似乎都变得非常奇妙,因此我认为“Vejer de la Frontera,Spain”的逗号可能是问题所在,因此我使用了:

var location_name = locationName.replace(/,/g, '');

但它一直在做比以前更奇怪的事情。有什么想法吗?chrome是否接受一个espace?记住,firefox也有同样的功能。顺便说一句,我在PHP中使用GET_uu。

在构建URL时,应该在参数上使用
encodeURI()

document.location.href = 'http://www.ihaves.org/main.php?id=' + encodeURIComponent(facebookUser);
使用:


您应该使用编码的键/值对。某些字符将导致无效的URL。例如:

mysite.com?name=Bed&Breakfast 
将产生两个值“
name=Bed
”和“
breakth=
”,这不是您期望或想要的。编码将导致您的URL:

mysite.com?name=Bed%26Breakfast

它看起来可能很有趣,但URL现在有效,并按预期工作。

您好,谢谢您的建议,但很抱歉,它一直在做同样的事情您好,谢谢您的评论,但没有结果,还有其他想法吗?这太奇怪了!您应该使用编码的键/值对。某些字符将导致无效URL。感谢您的评论和版本。如果你看一下IE中的结果(预期的结果),我做了一些更改,你觉得有什么不对劲吗?或者你会改变什么?有一个“-”字符可能是问题所在,但如果你能看一看,告诉我是怎么回事,那就太棒了。你是说url被截断了吗?locat变量“locat_uz”后面应该有下划线吗?不,mathius,url不会被截断,它似乎是stackoverflow发布规则的一部分,无论如何,下划线也是变量名称的一部分,我的意思是,不是变量的值,而是名称本身。我可以改变它看看发生了什么这就是你想要发生的。您应该使用编码的键/值对。某些字符将导致无效的URL。
mysite.com?name=Bed%26Breakfast