0

我有一个搜索表单,只要表单中的某些内容发生更改,它就会自动向我的 Web 应用程序发送 POST 数据。Web 应用程序(用 PHP/CodeIgniter 编写)接受 POST 或 GET 并返回正确的结果并将其显示在页面上。一切正常。

现在,我担心的是 URL 没有反映获取当前搜索结果所需的查询参数。因此,如果有人复制并分享了地址,点击该 URL 的人将看不到预期的数据。书签等问题也一样。

可以在 jQuery 中更新查询字符串,但这会强制浏览器重定向到新 URL(这样做时,页面会显示正确的搜索结果,因为 Web 应用程序实际上最初是为非 JS 工作而编写的)。这种重定向意味着 Ajaxifying 的努力被浪费了。

似乎哈希 # 可用于更新地址而不使浏览器重定向,但我似乎无法在非 JS 情况下使用该信息(我无法通过 GET 访问该信息)。

我应该使用什么方法来解决这个问题?

4

1 回答 1

2

HTML5 浏览器支持History pushState,它可以在不刷新页面的情况下更新浏览器的 url。

var stateObj = { foo: "bar" };
history.pushState(stateObj, "page 2", "bar.html");

您可以使用history.js添加对不支持它的浏览器的支持

于 2012-10-16T15:45:15.850 回答