Werden Ajax Scripte (z.B. ajaxsearch) auf https-Seiten aufgerufen funktionieren diese nicht und es kommt es zu einem
NetworkError: 500 Internal Server Error - http://www....../cgi-bin/iboshop.cgi?ajax<Seitennummer>Das kann man mit einer kleinen Änderung in ajax.ipl vermeiden:
Original-Script
sub print_scripts {
$out .= qq|
<script type="text/javascript">
// Server-URL für die Ajax-Abfragen
var myinterface = "__xxpath__?ajax$gl_ajax_pageNr,__xxsession__";
</script>
<script type="text/javascript" src="$gl_path_to_ajax/json2.js"></script>
<script type="text/javascript" src="$gl_path_to_ajax/http/Request.js"></script>
<script type="text/javascript" src="$gl_path_to_ajax/jquery.js"></script>
<link rel="stylesheet" href="$gl_path_to_ajax/css/ajax.css">
|;
main::mprint $out;
}
ersetzen mit
sub print_scripts {
my $ajaxurl = qq|
<script type="text/javascript">
// Server-URL für die Ajax-Abfragen
var myinterface = "__xxpath__?ajax$gl_ajax_pageNr,__xxsession__";
</script>
|;
if ($main::secure) {
$ajaxurl = qq|
<script type="text/javascript">
// Server-URL für die Ajax-Abfragen
var myinterface = "__xxspath__?ajax$gl_ajax_pageNr,__xxsession__";
</script>
|;
}
$out .= qq| $ajaxurl
<script type="text/javascript" src="$gl_path_to_ajax/json2.js"></script>
<script type="text/javascript" src="$gl_path_to_ajax/http/Request.js"></script>
<script type="text/javascript" src="$gl_path_to_ajax/jquery.js"></script>
<link rel="stylesheet" href="$gl_path_to_ajax/css/ajax.css">
|;
main::mprint $out;
}
Dadurch werden alle Ajax-Scripte auf https-Seiten automatisch mit
https://www.<SSL-Adresse>/cgi-bin/iboshop.cgi?ajax<Seitennummer>eingebunden.
Ergebnis: alle Ajax-Anwendungen funktionieren auch auf https-Seiten
Diese Änderung ist z.B.
unbedingt nötig, wenn man bei der neuen Adressverwaltung das "alternative Lieferadresse speichern" für eingeloggte Kunden verwendet, da das ja im Bestellablauf = i.d.R.
nur auf https-Seiten passiert.
Linkback: https://www.shoppilot.net/pf/index.php?topic=1637.0