2011-12-19 18 views
6

Rimozione di% 20 nel metodo get?Rimozione del valore% 20 dal metodo get

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

e in 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 "); 

e nella "lista" sua dusplaying me "1%202";

Come posso rimuovere questo valore %20 =space ??

Grazie

+0

cosa desideri il parametro 'list' di essere? '1,2'? – jabclab

risposta

7

basta usare questo:

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

Questo deve decodificare il %20-space

un'occhiata qui: http://www.w3schools.com/jsref/jsref_decodeURIComponent.asp

+1

Si prega di non collegare a W3Schools. Troppo spesso si sbagliano. (A metà della pagina si dimenticano la parte "Component" e iniziano a lanciare interi URL invece che non rappresentano un buon esempio e tuttavia riescono a essere una delle migliori pagine di W3Schools). – Quentin

+0

hai una fonte migliore di loro? In realtà non trovo una pagina che abbia un esempio migliore. – evildead

+0

MDN di solito è migliore, anche se in questo caso si tratta in realtà di un problema: https: //developer.mozilla.org/it/JavaScript/Riferimento/Global_Objects/decodeURIComponent – Quentin

0

Se c'è uno spazio nel parametro (s), allora la %20 (URL Encoding) è necessario. Non è possibile passare uno spazio in una richiesta GET.

Se è necessario evitare questo, utilizzare POST.

+0

non c'è spazio. Non so come venga aggiunto% 20 qui. Non posso usare il POST. Come posso risolvere questo utilizzando GET? – Smitha

+0

@Sneha, non sono sicuro del perché, ma puoi usare la funzione 'unescape (text)' per decodificare '% 20' in uno spazio reale. Spero possa aiutare. – st0le

+0

'unescape' è deprecato. Non usarlo – Quentin

0

Per quanto posso vedere il problema è stato introdotto in questa linea:

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

Questo potrebbe essere scritto come:

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

Il predefinita.toString() di un JavaScript Array sarebbe quella di utilizzare un delimitatore di ,, vale a dire

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

In te esempio sembra che il delimitatore utilizzato è uno spazio. Questo sarebbe stato modificato da qualcosa cambiando il comportamento predefinito di .toString() su Array.prototype. Provare a utilizzare il seguente:

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

Meglio usare sostituire il metodo() per sostituire %20 a space

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