可以使用HTML5的history API来实现URL重写,而不影响Ajax函数的使用。以下是一个示例代码:
// 1. 使用pushState()方法重写URL
function rewriteURL(url) {
history.pushState(null, null, url);
}
// 2. 监听popstate事件,当URL发生改变时执行相应的操作
window.addEventListener('popstate', function(event) {
// 在这里执行你的Ajax函数
// event.state可以获取到之前pushState()方法中传入的数据
});
// 3. 使用Ajax函数进行请求
function ajaxRequest(url) {
// 在这里执行你的Ajax请求操作
}
// 4. 示例代码
// 重写URL,并执行Ajax请求
rewriteURL('/some-url');
ajaxRequest('/some-url');
// 当用户点击浏览器的后退或前进按钮时,触发popstate事件,执行相应的Ajax请求
在这个示例中,我们使用history.pushState()方法来重写URL,并在Ajax请求之前执行。然后,我们在window对象上添加一个popstate事件监听器,当URL发生改变时执行相应的Ajax请求操作。这样就实现了URL重写而不影响Ajax函数的使用。