2011-12-19 17 views
6

Usunięcie% 20 w metodzie get?Usuwanie wartości% 20 z metody get

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

aw 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 "); 

w "liście" jej dusplaying mi "1%202";

Jak mogę usunąć tę wartość %20 =space?

Dzięki

+0

Co prawda jak 'list' parametru być? "1,2"? – jabclab

Odpowiedz

7

prostu użyć tego:

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

ten powinien dekodować %20 do space

obejrzenia tutaj: http://www.w3schools.com/jsref/jsref_decodeURIComponent.asp

+1

Proszę nie linkować do W3Schools. Zbyt często się mylą. (W połowie tej strony zapominają o części "Komponent" i zaczynają się zastanawiać nad całymi adresami URL, które nie stanowią dobrego przykładu, a mimo to udaje się być jedną z najlepszych stron, jakie ma W3Schools). – Quentin

+0

czy masz lepsze źródło niż oni? Właściwie nie znajduję strony, która ma lepszy przykład. – evildead

+0

MDN jest zwykle lepszy, chociaż w tym przypadku jest to coś w rodzaju: https: //developer.mozilla.org/pl/JavaScript/Reference/Global_Objects/decodeURIComponent – Quentin

0

Jeśli istnieje przestrzeń w parametrze (ów), a następnie %20 (URL Encoding) jest konieczne. Nie można przekazać spacji w żądaniu GET.

Jeśli chcesz tego uniknąć, użyj POST.

+0

nie ma miejsca. Nie wiem, jak dodaje się tam% 20. Nie mogę używać testu POST. Jak mogę rozwiązać ten problem, używając GET? – Smitha

+0

@Sneha, nie jestem pewien, dlaczego tak jest, ale możesz użyć funkcji 'unescape (text)', aby zdekodować '% 20' w rzeczywistej przestrzeni. Nadzieja, która pomaga. – st0le

+0

'unescape' jest przestarzałe. Nie używaj go. – Quentin

0

O ile widzę problem jest wprowadzony w tym wierszu:

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

To może być zapisać jako:

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

domyślny.toString() z JavaScript Array byłoby użyć separatora z ,, tj

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

w was przykład wydaje się, że ogranicznik używany jest przestrzeń. Zostałoby to zmienione przez zmianę domyślnego zachowania .toString() na . Spróbuj użyć następujących czynności:

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

Lepiej użyć zastąpić metodę(), aby zastąpić %20 do space

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

Powiązane problemy