如何在源代码中使用JavaScript将每个http更改为https?

时间:2010-12-01 21:19:59

标签: javascript http https

我想使用JavaScript将http的每个实例更改为https。我怎样才能做到这一点?源代码会是什么样的?

3 个答案:

答案 0 :(得分:0)

无论如何,我假设你所使用的是标签,但是应该很容易将其推断给其他人:

if (document.location.protocol === 'https:') {
    $('a').each(function() {
        var href = $(this).attr('href');
        if (href.indexOf('http:') > -1) {
            href = href.replace('http:', 'https:');
            $(this).attr('href', href);
        }
    });
}

答案 1 :(得分:0)

您可以在http域页面中向httlet发送https更改请求,服务器将重定向到https域页面。尝试在javascript中将域从http更改为https将导致浏览器安全性错误(因为在所有现代浏览器中都拒绝跨域请求)。 我解决了同样的问题,如下所示。

function readyForSecure(loginID)
{
   if (location.protocol == 'http:') {
   // https change request
      HTMLFormElement.prototype.submit.call(document.getElementById('login-box'));
   }
}


<form id="login-box" action='xxxxxx' method="post" accept-charset="UTF-8">
   ...
   <input type="button" value="Login"  onfocus="readyForSecure(this.value)"/>
</form>
你可以在这里参考。 refer page.

答案 2 :(得分:-1)

您可以使用以下内容将http流量重定向到https:

<script type="text/javascript"> 
<!-- begin hide
function httpsRedirect()
{
var httpURL = window.location.hostname + window.location.pathname;
var httpsURL = "https://" + httpURL;
window.location = httpsURL; 
}
httpsRedirect();
// end hide -->;
</script>