Autor Thema: Ajax-Anwendungen auf https-Seiten  (Gelesen 8798 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Ajax-Anwendungen auf https-Seiten
« am: Dezember 01, 2012, 08:21:27 »
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  ;D

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
« Letzte Änderung: Dezember 01, 2012, 08:40:58 von dobra »
mfG
dobra

Offline ahe

  • Global Moderator
  • Sr. Member
  • *****
  • Beiträge: 435
  • Lob: 20
Re: Ajax-Anwendungen auf https-Seiten
« Antwort #1 am: Dezember 06, 2012, 15:40:20 »
Eine andere Möglichkeit ist es, 2 globale Variablen anzulegen.
Zb in der stdall.ipl damit die Variablen in allen Scripten zur Verfügung stehen.

<!--spmacro:module(globals)
our $CATDIR = $ssp::catalog_abs;
our $CGI = $ssp::xxpath;

# if (main::is_ssl()) { ## funktioniert so nicht im alternativen Bestellablauf
if ($ENV{HTTPS} eq 'on') {
    $CATDIR = $ssp::sec_catalog_abs;
    $CGI = $ssp::xxspath;
}
-->

Dann könnte die oben angeführte Funktion so geschrieben werden und man hätte die extra if-Bedingung gespart:

sub print_scripts {
$out .= qq|
<script type="text/javascript">
// Server-URL für die Ajax-Abfragen
 var myinterface = "$globals::CGI?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;
}

Mit $globals::CATDIR kann man dann zum Beispiel Bilder und CSS-Dateien verlinken.
Zb main::mprint("$globals::CATDIR/bilder/testbild.png");
« Letzte Änderung: Dezember 07, 2012, 08:29:45 von ahe »
MfG ahe

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Re: Ajax-Anwendungen auf https-Seiten
« Antwort #2 am: Dezember 06, 2012, 15:50:19 »
Danke für das Script !
.... und bitte das auch in die DOKU aufnehmen.
ein "ottonormaluser" wie ich kann sowas ja nicht wissen ;)


xx
$ssp::catalog_abs auf https Seiten

Begonnen von dobra

0 Antworten
5484 Aufrufe
Letzter Beitrag Februar 19, 2014, 07:41:25
von dobra
xx
zufällig wechselnde Artikel mit ajax (auch auf statischen Seiten)

Begonnen von dobra

0 Antworten
5901 Aufrufe
Letzter Beitrag Januar 15, 2010, 20:53:35
von dobra
xx
Shop auf https (SSL) umstellen

Begonnen von admin

0 Antworten
8364 Aufrufe
Letzter Beitrag Januar 03, 2017, 11:09:01
von admin
grin
favhinzu mit ajax

Begonnen von dobra

0 Antworten
6786 Aufrufe
Letzter Beitrag November 29, 2008, 18:47:50
von dobra