如何将一个GET参数替换为另一个参数?

时间:2012-11-26 14:04:43

标签: jquery ajax

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

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

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

由于

2 个答案:

答案 0 :(得分:2)

jQuery和AJAX是客户端技术。您安装的用户群的限制可能是您不能在客户端更改任何内容而不说服每个人重新安装该应用程序;在这种情况下,这些无法帮助你。

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

如果您无法更改脚本,关于您唯一剩下的策略是在Web服务器级别更改请求。例如,如果您将Apache与mod_rewrite一起使用,则可以在配置中添加如下内容:

RewriteCond %{QUERY_STRING} param=([^&]+)
RewriteRule /myscriptpath /myscriptpath?p=%1

答案 1 :(得分:0)

可能不是实践中最有用的答案,因为它并不是随处可见,但是所有现代浏览器都支持名为pushState的方法。该方法可以更新地址栏中的网址,而不必强制重新加载网页。

以下是支持位置的表格:http://caniuse.com/#search=pushstate

如果您想详细了解如何使用它,可以从这里开始:https://developer.mozilla.org/en-US/docs/DOM/Manipulating_the_browser_history