Как кодировать параметры URL?
Я пытаюсь передать параметры в URL, который выглядит так:
http://www.foobar.com/foo?imageurl=
и я хочу передать параметры suchas и URL изображения, который генерируется сам другим API, и ссылка на изображение получается как:
http://www.image.com/?username=unknown&password=unknown
однако, когда я пытаюсь использовать URL:
http://www.foobar.com/foo?imageurl=http://www.image.com/?username=unknown&password=unknown
он не работает..
Я также пробовал использовать encodeURI и encodeURIComponents на imageURL, и это тоже не работает.
2 ответа:
С PHP
echo urlencode("http://www.image.com/?username=unknown&password=unknown");
результат
http%3A%2F%2Fwww.image.com%2F%3Fusername%3Dunknown%26password%3Dunknown
С Javascript:
var myUrl = "http://www.image.com/?username=unknown&password=unknown"; var encodedURL= "http://www.foobar.com/foo?imageurl=" + encodeURIComponent(myUrl);
использование нового объекта ES-8.записи (), это делает для забавной маленькой вложенной карты / join:
const encodeGetParams = p => Object.entries(p).map(kv => kv.map(encodeURIComponent).join("=")).join("&"); const params = { user: "María Rodríguez", awesome: true, awesomeness: 64, "ZOMG+&=*(": "*^%*GMOZ" }; console.log("https://example.com/endpoint?" + encodeGetParams(params))