我在这里询问了许多有关不重新加载而更改url的问题。虽然我尝试了几乎所有方法,但无法完全更改页面的url(包括域名部分)而不重新加载新页面。我该怎么办?
答案 0 :(得分:3)
这不可能,有充分的理由。您可以在此处获取有关此信息的更多信息:Same-origin policy
答案 1 :(得分:0)
您可以使用pushState进行描述。例如(从此处引出:https://www.aspsnippets.com/Articles/Change-URL-in-Browser-Address-Bar-without-reloading-using-JavaScript-and-jQuery.aspx)
<script type="text/javascript">
function ChangeUrl(title, url) {
if (typeof (history.pushState) != "undefined") {
var obj = { Title: title, Url: url };
history.pushState(obj, obj.Title, obj.Url);
} else {
alert("Browser does not support HTML5.");
}
}
</script>
<input type="button" value="Page1" onclick="ChangeUrl('Page1', 'Page1.htm');" />
<input type="button" value="Page2" onclick="ChangeUrl('Page2', 'Page2.htm');" />
<input type="button" value="Page3" onclick="ChangeUrl('Page3', 'Page3.htm');" />
请注意,如果您尝试直接在浏览器中打开测试文件(即,URL为file:// whatever),这将 无效。浏览器的行为有所不同。您将需要通过某些http服务器提供该服务。
修改 这不能回答OP提出的特定问题。它将更改路径,但是您不能通过pushState更改URL的主机名部分。正如其他人已经回答的那样,由于同源策略,无法在不重新加载页面的情况下进行更改。如果其他人只需要更改URL的路径部分,我就把它留在这里。