从get方法中删除%20值

时间:2011-12-19 08:32:54

标签: javascript android get

在get方法中删除%20?

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

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

并在“列表”中向我展示"1%202";

如何删除此%20 =space值?

由于

4 个答案:

答案 0 :(得分:7)

只需使用:

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

这应解码%20space

看这里:http://www.w3schools.com/jsref/jsref_decodeURIComponent.asp

答案 1 :(得分:0)

如果参数中有空格,则需要%20(URL编码)。您无法在GET请求中传递空格。

如果您需要避免这种情况,请使用POST

答案 2 :(得分:0)

据我所知,问题正在这一行引入:

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

这可以写成:

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

JavaScript .toString()默认 Array将使用,的分隔符,即

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

在您的示例中,似乎使用的分隔符是空格。改变.toString()Array.prototype的默认行为的内容会改变这种情况。请尝试使用以下内容:

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

答案 3 :(得分:0)

最好使用replace()方法将%20替换为space

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