2011-12-19 10 views
6

Extracción% 20 en método get?Extracción% 20 Valor del método get

var c=new Array(a);  
(eg: a={"1","2"}) window.location="my_details.html?"+ c + "_"; 

y en my_details.html:

var q=window.location.search;  
alert("qqqqqqqqqqqqq " + q); 
var arrayList = (q)? q.substring(1).split("_"):[];  
var list=new Array(arrayList);  
alert("dataaaaaaaaaaaa " + list + "llll "); 

y en la "lista" its me dusplaying "1%202";

¿Cómo puedo eliminar este valor %20 =space ??

Gracias

+0

¿Qué le gustaría que el parámetro 'list' ser? '1,2'? – jabclab

Respuesta

7

sólo tiene que utilizar esto:

alert("dataaaaaaaaaaaa " + decodeURIComponent(list) + "llll "); 

Esto debe decodificar el %20-space

vistazo aquí: http://www.w3schools.com/jsref/jsref_decodeURIComponent.asp

+1

No enlaces a W3Schools. A menudo están equivocados. (A la mitad de esa página se olvidan de la parte del "Componente" y comienzan a usar URL completas, lo que no sirve como un buen ejemplo y, sin embargo, logra ser una de las mejores páginas que tiene W3Schools). – Quentin

+0

¿tiene una mejor fuente que ellos? De hecho, no encuentro una página que tenga un mejor ejemplo. – evildead

+0

MDN suele ser mejor, aunque en este caso es algo así como un tirón: https: //developer.mozilla.org/es/JavaScript/Reference/Global_Objects/decodeURIComponent – Quentin

0

Si hay un espacio en el parámetro (s), entonces el %20 (codificación URL) es necesario. No puede pasar un espacio en una solicitud GET.

Si necesita evitar esto, use POST.

+0

no hay espacio. No sé cómo se va a agregar% 20 allí. No puedo usar POST. ¿Cómo puedo resolver esto usando GET? – Smitha

+0

@Sneha, no estoy seguro de por qué es así, pero puede usar la función 'unescape (text)' para decodificar '% 20' en un espacio real. Espero que ayude. – st0le

+0

'unescape' está en desuso. No lo uses – Quentin

0

Por lo que yo puedo ver el problema se está introduciendo en esta línea:

window.location="my_details.html?"+ c + "_"; 

Esto podría ser escrita como:

window.location="my_details.html?"+ c.toString() + "_"; 

El predeterminado.toString() de un JavaScript Array sería utilizar un delimitador de ,, es decir

var str = ["1", "2", "3"].toString(); // 1,2,3 

En ti ejemplo, parece que el delimitador que se utiliza es un espacio. Esto habría sido cambiado por algo cambiando el comportamiento predeterminado de .toString() en el Array.prototype. Trate de usar la siguiente:

window.location="my_details.html?"+ c.join(",") + "_"; 
0

Es mejor usar sustituir() para reemplazar a %20space

list.replace("%20"," ");

Cuestiones relacionadas