我试图在页面加载时为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
。
以前有没有人遇到过这个问题,或者知道问题可能是什么?
谢谢!