1

我有一个站点,其中包含人们在他们的计算机上安装的应用程序。应用程序使用 get 参数访问我的站点parammysite.com?param=sometext

由于最近的升级和与另一个系统的集成,我的站点现在需要参数p: mysite.com?p=sometext。我需要页面更改参数而不刷新页面(当用户发送param参数时我需要将其转换为p参数)。

有没有办法用 jQuery/AJAX 做到这一点?也许还有别的?

谢谢

4

2 回答 2

2

jQuery 和 AJAX 是客户端技术。您安装的用户群的限制大概是您无法在客户端更改任何内容,除非说服所有人重新安装应用程序;在那种情况下,这些对你没有帮助。

由于您无法更改来自客户端应用程序的请求,因此您唯一可以做的就是让服务器端响应param=xp=x. 这似乎是最容易做到的,方法是更改​​接收请求的脚本以允许可互换使用任一参数名称。

如果您也无法更改脚本,那么您唯一剩下的策略就是在 Web 服务器级别更改请求。例如,如果您使用带有 mod_rewrite 的 Apache,您可以在配置中添加如下内容:

RewriteCond %{QUERY_STRING} param=([^&]+)
RewriteRule /myscriptpath /myscriptpath?p=%1
于 2012-11-26T14:16:45.850 回答
0

在实践中可能不是最有用的答案,因为它并非在所有地方都受支持,但所有现代浏览器都支持一种名为pushState. 该方法可以更新地址栏中的 url,而无需强制页面重新加载。

这是一个支持它的表格:http: //caniuse.com/#search=pushstate

如果您想了解更多关于如何使用它的信息,您可以从这里开始:https ://developer.mozilla.org/en-US/docs/DOM/Manipulating_the_browser_history

于 2012-11-26T14:41:57.960 回答