这个问题听起来很奇怪,所以让我解释一下。我的服务器将字符串形式的HTML文件发送给客户端(我花了很多时间尝试使用简单的重定向,但没有这样做)。我希望客户端使用此html文件,但使其看起来像重定向。换句话说,可以说example.com/blah1将HTML文件作为字符串获取。我希望它将用户发送到example.com/blah2,但不要使用blah2.html,而应使用服务器上的HTML文件。目前,除了重定向部分之外,我已经解决了所有其他问题。下面的代码用服务器上的新DOM替换了当前DOM,但URL保持不变。
$(".login-form").submit(function(e)
{
e.preventDefault();
var username = $(".username-input").val();
var password = $(".password-input").val();
$.post("/loginAttempt",{
username: username,
password: password
},function(data)
{
$("html").html(data);
});
});
新历史记录条目的URL由此参数给出。请注意,浏览器在调用pushState()之后将不会尝试加载此URL,但是可能会稍后尝试加载URL,例如,在用户重新启动浏览器之后。新的URL不必是绝对的。如果是相对的,则相对于当前URL进行解析。
window.history.pushState({
state: "foo"
}, "title", "/blah2.html");