【发布时间】:2012-09-21 11:40:33
【问题描述】:
下面是我在 Firefox v15.0.1 中的本地站点上请求的 URI 示例,为简洁起见,我删除了主机名。
/search?cat=ngb%26b
一些分页链接显示在结果页面上,带有类似这样的href
?p=2&cat=ngb%26b
对他们的点击事件执行以下历史请求,该事件使用https://github.com/browserstate/History.js/,它使用 HTML5 历史记录,因为它的状态发生了我所知道的变化。
History.getState().url;
url History.getState().url 给了我下面的信息,这被传递给点击事件的异步函数:
/search?cat=ngb&b&p=2
然后历史记录将浏览器 URI 调整为此
/search?cat=ngb&b=undefined&p=2
我的异步操作失败了,因为“cat”参数现在不正确。
我不能对 getState().url 的整个结果进行 URL 编码,因为那是不正确的。
在面对这种情况时,我有什么遗漏需要做的吗?
任何帮助将不胜感激。谢谢。
更新: 我目前正在调试它并查看 getState() 函数返回的对象。它有一个“数据”对象属性,其中包含正确编码的参数。
可能我可以旋转然后将它们添加到我传递给发出 ajax 请求的函数的 URL(而不是传递给它的 .url 属性),但这听起来不是一个好主意,当历史意味着处理 HTML4 的哈希 url 回退。
【问题讨论】:
标签: javascript html history.js html5-history