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

Javascript 当服务器从http更改为https时,有哪些可能的方法来解决问题?,javascript,http,https,Javascript,Http,Https,由于服务器从http更改为https,我正在处理的计算操作出现问题 我没有在给出问题的功能文件中更改任何内容,实际上我不知道发生了什么,因为控制台没有返回任何错误 在生产环境中,一切都正常工作,因为协议是http,但在Staging ENV中,由于对安全服务器的更改,应用程序的该部分会停止运行,并且不会返回任何内容 if(window.location.href.indexOf("standalone") != -1) { var pid = 'HL:Tool:HLmisc:Calc;Mor

由于服务器从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;
});
这是一个函数,它接受一些输入值并进行我需要的计算

有什么建议吗

编辑
如果你投反对票,至少提供一个理由,这样我可以改进我的答案。您正在滥用该功能。

如果您正在引用同一站点内的链接,最好只引用相对于根的路径,而忽略协议和主机名。您的链接如下所示:

<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。

错误是什么?“应用程序宕机”绝不是故障描述。那么,到底什么不起作用?什么是AFFSNAP?如果它涉及一些Ajax,您可能会遇到SOP问题。确保通过HTTPS为整个站点提供服务。@Bergi这里是整个文件的要点