一尘不染

在 JavaScript 中编码 URL?

javascript

如何使用 JavaScript 安全地对 URL 进行编码,以便可以将其放入 GET 字符串中?

var myUrl = "http://example.com/index.html?param=1&anotherParam=2";
var myOtherUrl = "http://example.com/index.html?url=" + myUrl;

我假设您需要myUrl在第二行对变量进行编码?


阅读 168

收藏
2022-01-28

共2个答案

一尘不染

查看内置函数encodeURIComponent(str)encodeURI(str)
在您的情况下,这应该有效:

var myOtherUrl = 
       "http://example.com/index.html?url=" + encodeURIComponent(myUrl);
2022-01-28
一尘不染

你有三个选择:

  • escape() 不会编码: @*/+
  • encodeURI() 不会编码: ~!@#$&*()=:/,;?+'
  • encodeURIComponent() 不会编码: ~!*()'

但在你的情况下,如果你想将一个URL传递给其他页面的GET参数,你应该使用escapeor encodeURIComponent,而不是encodeURI

2022-01-28