im Template ein Ajax Abfrage zu starten. Der request wird auch abgesetzt und, laut TemperData mit 200 zurückgeliefert, aber leider steht da Folgendes drinnen:
<br />
<b>Warning</b>: ini_set() [<a href='function.ini-set'>function.ini-set</a>]: A session is active. You cannot change the session module's ini settings at this time. in <b>/opt/lampp/htdocs/OXID/453s/admin/oxajax.php</b> on line <b>704</b><br />
<br />
<b>Warning</b>: Cannot modify header information - headers already sent by (output started at /opt/lampp/htdocs/OXID/453s/admin/oxajax.php:704) in <b>/opt/lampp/htdocs/OXID/453s/admin/oxajax.php</b> on line <b>731</b><br />
Die Warning hilft mir nicht weiter…
Ich habe rausgefunden das meine Klasse views/my_ajax.php
class my_ajax extends oxUBase
{
}
überhaupt nicht aufgerufen wird.
Aber wenn ich nun direkt im Browser die URL “http://[{$oxcmp_shop->oxshops__oxurl->value}]/index.php?cl=my_ajax&action=switchListPicType” eingebe bekomme ich auch das gewünscht Ergebniss zusehen.
Noch seltsamer ist das es in meinem 4.3.1 EE Shop wunderbar läuft und es keine Warning gibt, aber in der 4.5.7 die ich gerade benutzte.
Ich verwende übrigens lieber POST anstatt get, kannst ja mal in meinem Code gucken, ist ne kleine Extension für jQuery. Finde die normale jQuery-AJAX Syntax zudem schöner…
Du programmierst doch ne Klasse, die via AJAX bestimmte Werte zurückliefert, oder? Vor der Ausgabe sollten noch die header Informationen rein. Bei Dir wirds dann anstatt JSON eventuell text/html als Content-Type sein. Das war ja jetzt nur exemplarisch bzw. ne Hilfestellung, eintragen brauchst das von mir nrigendwo, da mein Code mit Deinem ja nichts zu tun haben kann.
also ich habe eigentlich nur eine neue View Klasse erstellt die die ich einfach über index.php?cl=my_ajax aufrufe. (class my_ajax extends oxUBase). Somit kann ich dort auch auch die render Funktion benutzten und die Ausgabe über eine Template Datei gehen lassen. Das hatte damals mit der 4.3.1 auch wunderbar Funktioniert, nun aber nicht mehr.
Bist du sicher dass die richtige URL aufgerufen wird? [{$oxcmp_shop->oxshops__oxurl->value}] ist etwas seltsam, das ist ja die Url die im Backend eingetragen ist und nicht die aktuelle Shop-Url. Ansonsten kannst du ja mal von der index.php weg debuggen wie denn der Verlauf bis zur admin/oxajax.php ist, kann mir das gar nicht vorstellen wie der Shop dorthin kommen sollte.
Ansonsten funktioniert alles was du bisher gepostet hast, genau so. Der Fehler muss also woanders liegen.
folgendes habe ich nun erfolgreich getestet:
Ich habe 2 Systeme die itentisch sind:
Wenn ich ein $.get() von system A zu system B schicke geht es.
Auch andersherum Funktioniert es. Nur versuche ich das $.get() auf dem gleichen System kommt die Warning.
Ich kann mir das einfach nicht erklären…