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