我在 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() 函数返回的对象。它有一个“数据”对象属性,其中包含正确编码的参数。
可能我可以旋转然后将它们添加到我传递给我的函数的 URL 中,该函数发出 ajax 请求(而不是传递给它的 .url 属性)但是当历史记录用于处理哈希时,这听起来不是一个好主意HTML4 的 url 后备。