2014-01-20 73 views
2

我有一個頁面,通過ExtJS的加載其他頁面中的iframe:是encodeURI和Ext.urlDecode

alert(UNID); // returns ...AAA== 
... 
    autoEl:{ 
     tag:"iframe", 
     src: someurl+'?anyparam=anything&unid='+encodeURI(UNID)+'&someparam=' 
     // Chrome Console (Network tab) tells me the URI is ...AAA==&someparam= 
    } 

和其他網站使用ExtJS的給定PARAMS解碼。

var params = Ext.urlDecode(window.location.search); 
alert(params.unid); // returns ...AAA 

我的錯誤在哪裏?如果沒有,這是encodeURI還是urlDecode中的錯誤?

回答

2

不,這不是一個錯誤,encodeURI未編碼等號=符號,所以當Ext.urlDecode解析它會將其作爲的URI部分字符串 - ...AAA = '''' = '' // useless/discarded

答案是簡單地使用正確的功能編碼「組件」URI的一部分時:

encodeURI('...AAA==');   // "...AAA==" 
encodeURIComponent('...AAA=='); // "...AAA%3D%3D" 

的差異是在documentation詳細。

相關問題