我试图在页面加载时为 AJAX 控制的 Django webapp 设置 URL 片段,类似于页面重定向。
预期的行为是:如果用户加载myapp.com
,我将片段更改为myapp.com/#/default/path
,这会触发内容更改。
当前使用 jQuery 的实现如下:
if (!window.location.hash) {
window.location.href = (window.location.pathname === "/")
? $("html").data("default-hash")
: hashify(window.location.pathname);
} else {
$(window).trigger('hashchange');
}
在这种情况下,默认片段作为 data-* 属性包含在 中<html>
,并且hashify()
是一个附加/#
到字符串的函数。我希望能够简单地从服务器返回 302 重定向,然后将路径名转换为哈希,如下所示:
if (!window.location.hash) {
window.location.href = hashify(window.location.pathname);
} else {
$(window).trigger('hashchange');
}
在当前的实现中,url 根据预期的行为发生变化。但是当我尝试第二种方法(使用重定向)时,URI 最终变为myapp.com/default/path/#/default/path
.
以前有没有人遇到过这个问题,或者知道问题可能是什么?
谢谢!