我有一个站点,其中包含人们在他们的计算机上安装的应用程序。应用程序使用 get 参数访问我的站点param
:mysite.com?param=sometext
。
由于最近的升级和与另一个系统的集成,我的站点现在需要参数p
: mysite.com?p=sometext
。我需要页面更改参数而不刷新页面(当用户发送param
参数时我需要将其转换为p
参数)。
有没有办法用 jQuery/AJAX 做到这一点?也许还有别的?
谢谢
jQuery 和 AJAX 是客户端技术。您安装的用户群的限制大概是您无法在客户端更改任何内容,除非说服所有人重新安装应用程序;在那种情况下,这些对你没有帮助。
由于您无法更改来自客户端应用程序的请求,因此您唯一可以做的就是让服务器端响应param=x
与p=x
. 这似乎是最容易做到的,方法是更改接收请求的脚本以允许可互换使用任一参数名称。
如果您也无法更改脚本,那么您唯一剩下的策略就是在 Web 服务器级别更改请求。例如,如果您使用带有 mod_rewrite 的 Apache,您可以在配置中添加如下内容:
RewriteCond %{QUERY_STRING} param=([^&]+)
RewriteRule /myscriptpath /myscriptpath?p=%1
在实践中可能不是最有用的答案,因为它并非在所有地方都受支持,但所有现代浏览器都支持一种名为pushState
. 该方法可以更新地址栏中的 url,而无需强制页面重新加载。
这是一个支持它的表格:http: //caniuse.com/#search=pushstate
如果您想了解更多关于如何使用它的信息,您可以从这里开始:https ://developer.mozilla.org/en-US/docs/DOM/Manipulating_the_browser_history