Jquery 无法将window.location.href设置为302响应后的哈希值

Jquery 无法将window.location.href设置为302响应后的哈希值,jquery,hashchange,Jquery,Hashchange,我试图在页面加载时为AJAX控制的Django webapp设置URL片段,类似于页面重定向 预期的行为是:如果用户加载myapp.com,我将片段更改为myapp.com/#/default/path,这将触发内容更改 jQuery的当前实现如下所示: if (!window.location.hash) { window.location.href = (window.location.pathname === "/") ? $("html").data("defau

我试图在页面加载时为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');
}
if (!window.location.hash) {
    window.location.href = hashify(window.location.pathname);
} else {
    $(window).trigger('hashchange');
}
在这种情况下,默认片段作为data-*属性包含在
中,而
hashify()
是一个将
/#
前置到字符串的函数。我希望能够简单地从服务器返回302重定向,然后将路径名转换为哈希,如下所示:

if (!window.location.hash) {
    window.location.href = (window.location.pathname === "/")
        ? $("html").data("default-hash")
        : hashify(window.location.pathname);
} else {
    $(window).trigger('hashchange');
}
if (!window.location.hash) {
    window.location.href = hashify(window.location.pathname);
} else {
    $(window).trigger('hashchange');
}
在当前实现中,url会根据预期的行为进行更改。但是当我尝试第二种方法(使用重定向)时,URI最终是
myapp.com/default/path/#/default/path

以前有没有人遇到过这个问题,或者知道这个问题是什么

谢谢