我有此代码:
$(window).ready(function() {
var url = window.location.href;
if (url.includes("#/projet/")) {
projectId = url.substring(url.indexOf("#")+1).split("/").slice(2, 3).toString();
window.location.href = "projects/" + projectId;
};
})
我被重定向了,但是window.location没有被替换,只是被串联了。
例如,如果我的网址是localhost:3000/users/212323/dashboard
,则在进行JavaScript重定向后,我得到的是localhost:3000/users/212323/projects/123456
而不是localhost:3000/projects/123456
我不明白为什么将href串联起来而不是将其替换掉,您有什么主意吗?
答案 0 :(得分:4)
window.location.href = 'someurl'
与单击someurl
标签中的<a>
的工作方式相同。
使用相对路径时(即开头没有/
),您的浏览器会将URL链接到现有URL。
您的情况下,简单的解决方法是在/
前面加上
window.location.href = "/projects/" + projectId;
但是请注意,如果将站点移到其他位置,这可能会导致站点不再工作。这就是为什么许多Web框架使用完整URL和某种基本URL来正确获取链接的原因。
答案 1 :(得分:3)
您需要在网址的开头添加另一个 private void getAll()
{
DataTable table = new DataTable();
table.Columns.Add("Dosage", typeof(int));
table.Columns.Add("Patient", typeof(string));
table.Columns.Add("Drug", typeof(string));
table.Columns.Add("Active", typeof(bool));
table.Columns.Add("ActiveStatus", typeof(Image));
String yesPath = @"C:\temp\Yes.png";
String noPath = @"C:\temp\No.png";
// Here we add five DataRows. You can add condition here to set appropriate image path.
table.Rows.Add(25, "Indocin", "David", true,Image.FromFile(yesPath));
table.Rows.Add(50, "Enebrel", "Avil", false, Image.FromFile(noPath));
table.Rows.Add(10, "Hydralazine", "Christoff", false, Image.FromFile(noPath));
table.Rows.Add(21, "Combivent", "Janet", false, Image.FromFile(noPath));
table.Rows.Add(100, "Dilantin", "Melanie", false, Image.FromFile(noPath));
dataGridView1.DataSource = table;
}
,否则浏览器会将其解释为当前网址的相对网址。
/
开头的多余window.location.href = "/projects/" + projectId;
告诉浏览器从根URL开始。