检测 HTTP 或 HTTPS,然后在 JavaScript 中强制使用 HTTPS

2022-08-29 23:44:23

有没有办法检测HTTP或HTTPS,然后强制使用HTTPS和JavaScript?

我有一些用于检测HTTP或HTTPS的代码,但我无法强制它使用。https:

我正在使用window.location.protocol属性来设置站点的任何内容,然后刷新页面,希望重新加载加载到浏览器中的新https'ed URL。https:

if (window.location.protocol != "https:") {
   window.location.protocol = "https:";
   window.location.reload();
}

答案 1

试试这个

if (location.protocol !== 'https:') {
    location.replace(`https:${location.href.substring(location.protocol.length)}`);
}

location.href = blah将此重定向添加到浏览器历史记录中。如果用户点击后退按钮,他们将被重定向回同一页面。最好使用,因为它不会将此重定向添加到浏览器历史记录中。location.replace


答案 2

设置 location.protocol 将导航到新的 URL。无需解析/切片任何内容。

if (location.protocol !== "https:") {
  location.protocol = "https:";
}

Firefox 49有一个工作但不能工作的错误。据说在火狐54中是固定的httpshttps: