Javascript 作为url参数传递url的推荐方法是什么?

Javascript 作为url参数传递url的推荐方法是什么?,javascript,Javascript,使用&url='+encodeURIComponent(url)将URL从浏览器传递到服务器将对URL进行编码,但在服务器上解码时,URL的参数将被解释为单独的参数,而不是单个URL参数的一部分 建议以什么方式将url作为url参数传递?使用escape()对其进行url编码,它将对符号进行编码,这样就不会发生这种情况 使用“&url=”+encodeURIComponent(url);将URL从浏览器传递到服务器将对URL进行编码 是的,这就是你应该做的encodeURIComponent是编

使用
&url='+encodeURIComponent(url)
将URL从浏览器传递到服务器将对URL进行编码,但在服务器上解码时,URL的参数将被解释为单独的参数,而不是单个URL参数的一部分

建议以什么方式将url作为url参数传递?

使用escape()对其进行url编码,它将对符号进行编码,这样就不会发生这种情况

使用“&url=”+encodeURIComponent(url);将URL从浏览器传递到服务器将对URL进行编码

是的,这就是你应该做的
encodeURIComponent
是编码文本值以放入查询字符串的正确方法

但在服务器上解码时,url的参数被解释为单独的参数,而不是单个url参数的一部分

那服务器确实坏了。如果这真的发生了,您需要在服务器端修复它

代码?

encodeURIComponent()应该可以工作。比如说,

'&url=' + encodeURIComponent("http://a.com/?q=query&n=10")
产生

"&url=http%3A%2F%2Fa.com%2F%3Fq%3Dquery%26n%3D10"
(该值中没有任何
&
)。 当您的服务器获取此url时,它应该能够解码该url以获取原始url:

param["url"] = "http://a.com/?q=query&n=10"

我不确定您使用的是哪台服务器(如Rails、Django等),但这在任何正常系统上都应该是“开箱即用”的。

老实说,使用Google URL Shortener。然后,您可以在URL查询字符串中使用URL代码:


在您的应用程序中,将其作为Google URL Shortener域名的前缀,并执行重定向。这也通过谷歌分析增加了对URL的跟踪。这种方法有很多优点。只需一个短代码并添加跟踪数据。

转义
类似于
encodeURIComponent
,但会为
+
字符和任何非ASCII字符生成错误的输出。永远不要使用它。