1

我试图在页面加载时为 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.

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

谢谢!

4

0 回答 0