Estoy tratando de pasar parámetros a una URL que se parece a esto:
http://www.foobar.com/foo?imageurl=
Y quiero pasar los parámetros como una URL de imagen que es generada por otra API, y el enlace de la imagen resulta como:
http://www.image.com/?username=unknown&password=unknown
Sin embargo, cuando intento usar la URL:
http://www.foobar.com/foo?imageurl=http://www.image.com/?username=unknown&password=unknown
No funciona.
También intenté usar encodeURI()y encodeURIComponent()en imageURL, y eso tampoco funciona.
javascript
url
encodeuricomponent
Apoorv Saxena
fuente
fuente

Respuestas:
Con PHP
Resultado
Con Javascript:
DEMO: http://jsfiddle.net/Lpv53/
fuente
Usando el nuevo ES6
Object.entries(), se convierte en un pequeño anidadomap/ divertidojoin:fuente
No deberías usar
encodeURIComponent()oencodeURI(). Debe utilizarfixedEncodeURIComponent()yfixedEncodeURI(), de acuerdo con la documentación de MDN.Respecto a
encodeURI()...Respecto a
encodeURIComponent()...¿Entonces cuál es la diferencia?
fixedEncodeURI()yfixedEncodeURIComponent()convertir el mismo conjunto de valores, perofixedEncodeURIComponent()también convierte este conjunto:+@?=:*#;,$&. Este conjunto se utiliza enGETlos parámetros (&,+, etc.), las etiquetas de anclaje (#), etiquetas de comodines (*), piezas de correo electrónico / nombre de usuario (@), etc ..Por ejemplo: si lo usa
encodeURI(),[email protected]/?email=me@homeno enviará correctamente el segundo@al servidor, a excepción de que su navegador maneje la compatibilidad (como Chrome, naturalmente, lo hace a menudo).fuente
"except for your browser handling the compatibility"?site.com?formula=a+b=ctrabaja en la producciónformula=>a+b=c, eso viola las especificaciones, pero si funciona, es porque Chrome / etc. puede detectar el error de especificación de la URL, etc., y así sucesivamente, w /[email protected][email protected].