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

Nir*_*Nir 47 javascript

使用&url='+encodeURIComponent(url);通过从浏览器到服务器的URL将编码的URL,但是当它在服务器解码,URL的参数被解释为单独的参数,而不是单一的URL参数的一部分.

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

Dus*_*ell 77

encodeURIComponent()应该管用.例如,

'&url=' + encodeURIComponent("http://a.com/?q=query&n=10")
Run Code Online (Sandbox Code Playgroud)

产生

"&url=http%3A%2F%2Fa.com%2F%3Fq%3Dquery%26n%3D10"
Run Code Online (Sandbox Code Playgroud)

(没有任何&?在价值中).当您的服务器获取此URL时,它应该能够解码它以获取原始:

param["url"] = "http://a.com/?q=query&n=10"
Run Code Online (Sandbox Code Playgroud)

我不确定你正在使用什么服务器(例如Rails,Django,......),但这应该在任何正常系统上"开箱即用".


bob*_*nce 5

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

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

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

然后服务器确实很坏。如果确实发生了这种情况,则需要在服务器端修复它。

代码?