Javascript encodeURI和Ext.urlDecode
我有一个页面通过ExtJS在iframe中加载其他页面:Javascript encodeURI和Ext.urlDecode,javascript,extjs,Javascript,Extjs,我有一个页面通过ExtJS在iframe中加载其他页面: alert(UNID); // returns ...AAA== ... autoEl:{ tag:"iframe", src: someurl+'?anyparam=anything&unid='+encodeURI(UNID)+'&someparam=' // Chrome Console (Network tab) tells me the URI is ..
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来解码给定的参数
var params = Ext.urlDecode(window.location.search);
alert(params.unid); // returns ...AAA
我的错误在哪里?如果没有,这是encodeURI或urlDecode中的错误吗?不,这不是错误,
encodeURI
没有编码等于=
符号,因此当Ext.urlDecode
解析字符串时,它会将其视为URI的一部分-…AAA='
和='//无用/丢弃的
答案只是在编码URI的“组件”部分时使用正确的函数:
encodeURI(“…AAA=”);//“…AAA=”
encodeURIComponent(“…AAA==”);//“…AAA%3D%3D”
这些差异在下表中有详细说明