javascript - 编码 URI 和 Ext.urlDecode

标签 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 ...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"

documentation 中详细介绍了这些差异.

关于javascript - 编码 URI 和 Ext.urlDecode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21241259/

相关文章:

javascript - 如何计算谷歌地图中的其他2个坐标与方位 Angular 和距离

javascript - 在 Birt 处理程序上使用 Javascript reportContext.setPersistentGlobalVariable 方法在进程之间传递对象

javascript - 如何将 RequireJS 配置放在单独的文件中并使 r.js 优化器工作?

JavaScript 移动延迟和多次击键

javascript - 在 D3 强制布局渲染之前等待消息

javascript - 从网格拖放到树上,无需添加树节点

javascript - 如何在首次启动时以 ionic 显示 App 说明

javascript - 容器固定位置但仅在水平滚动时

javascript - 用javascript判断当前用户是否是 super 用户

javascript - Ext.JS 4.2.1 使用 Jasmine 进行单元测试 - 应用程序未定义