javascript - 如何制作每个页面加载运行一次的 ssl 转发脚本

标签 javascript html forward

我在使用 javascript 脚本时遇到了一些问题,该脚本会自动让您转而使用 ssl。例如,

http://www.example.com/link becomes https://www.example.com/link

但我的问题是连续加载脚本,但我希望它在加载完毕后停止。它会不断重新加载,这使得点击页面上的链接非常烦人和困难。

这是我当前的脚本

window.location = "https://" + window.location.hostname + window.location.pathname + window.location.search;

最佳答案

你需要这个:

if(window.location.protocol == 'http:') {
    window.location = "https://" + window.location.hostname + window.location.pathname + window.location.search;
}

...甚至更好:

if(window.location.protocol == 'http:') {
    window.location.replace(window.location.toString().replace(/^http:/, 'https:'));
}

第二个变体更好,因为:

  • 网址可能很复杂,我们会妥善处理
  • 由于使用 window.location.replace() 而不是直接将字符串分配给 window.location,之前的 URL 将从历史记录中删除,并且当用户点击 '返回'按钮,他会跳转到原始页面,而不是带有“http:”协议(protocol)的页面:http://www.w3schools.com/jsref/met_loc_replace.asp

但最好在服务器端实现它。

关于javascript - 如何制作每个页面加载运行一次的 ssl 转发脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27300666/

相关文章:

c++ - 来自 std::get 的完美转发元组值

javascript - 变量不保存新值

javascript - PHP登录脚本重定向在登录后不起作用

jquery - 实现单选按钮的正确方法

重定向或转发

excel - 使用 Apache POI 在 Excel 行中向前折叠

javascript - Canvas 快速纹理映射

javascript - 尽管 console.log() 显示了正确的值,但无法访问另一个函数内函数的返回

javascript - 按属性名称递归搜索对象中的值

jquery - CodaSlider 1.1.1 高度问题