当服务器从http更改为https时,有哪些方法可以解决问题?

时间:2016-04-26 16:46:31

标签: javascript http https

我正在处理计算操作的问题,因为服务器从http更改为https。

我没有改变提供问题的功能文件中的任何内容,实际上我不知道发生了什么,因为控制台没有返回任何错误。

在生产环境中,一切正常,因为协议是http,但在Staging ENV中,由于对安全服务器的更改,应用程序的该部分发生故障并且没有返回任何内容。

if(window.location.href.indexOf("standalone") != -1) {
  var pid = 'HL:Tool:HLmisc:Calc;MortgageCalculator';
  var standalone = 'standalone=y&';
}else{
  var pid = 'MHE:Tool:HLPE;Tool_AffordabilitySnapshot';
  var standalone = 'standalone=&';
}           if(window.location.href.indexOf("standalone") != -1) {
  var pid = 'HL:Tool:HLmisc:Calc;MortgageCalculator';
  var standalone = 'standalone=y&';
}else{
  var pid = 'MHE:Tool:HLPE;Tool_AffordabilitySnapshot';
  var standalone = 'standalone=&';
}

$(".submitBtn").click(function(e){
  //alert(this.id);
  var valRes = AFFSNAP.form.validate();
  if(this.id === 'incomeSubmit' && valRes) {
    //alert('build income array');
    var income = new Array();
    income['pid'] = pid+'Tool_AffordabilitySnapshot';
    income['nm'] = this.name;
    income['hr'] = location.protocol+'//'+location.hostname+location.pathname+'?'+standalone+'step=expenses&agi='+$('#agi').val()+'&mni='+$('#mni').val();
    AFFSNAP.throwManualCMClickEvt(income);
  }
  if(this.id === 'expensesSubmit' && valRes) {
    var expenses = new Array();
    expenses['pid'] = pid+'Tool_AFS_Expenses';
    expenses['nm'] = this.name;
    expenses['hr'] = '//'+location.hostname+location.pathname+'?'+standalone+'step=debt&utilities='+$('#utilities').val()+'&communications='+$('#communications').val()+'&entertainment='+$('#entertainment').val()+'&dependents='+$('#dependents').val()+'&travel='+$('#travel').val()+'&savings='+$('#savings').val();
    AFFSNAP.throwManualCMClickEvt(expenses);
  }
  if(this.id === 'calculateSubmit' && valRes){
    var calculate = new Array();
    calculate['pid'] = pid+'Tool_AFS_Debt';
    calculate['nm'] = this.name;
    calculate['hr'] = '//'+location.hostname+location.pathname+'?step=results&creditCards='+$('#creditCards').val()+'&loans='+$('#loans').val();
    AFFSNAP.throwManualCMClickEvt(calculate);
    AFFSNAP.throwCMOnLoadEvt2();
  }
  return valRes;
});

这是一个函数,它需要一些输入值并进行我需要的计算。

有什么建议吗?

修改 如果你投票,至少提供一个理由,以便我可以改善我的答案。你滥用这个功能。

1 个答案:

答案 0 :(得分:3)

如果您在同一网站内引用链接,最好只引用相对于根的路径,并省略协议&主机名。您的链接如下所示:

<a href="/path/to/my/file.html?key1=val1">test</a>

处理它的另一种方法是完全删除协议。这将允许它从当前协议继承。所以你的链接看起来像:

 <a href="//mydomain.com/path/to/my/file.html?key1=val1">test</a>

无论您的协议是http还是https,它都会自动预先设置为href。