2016-11-26 3 views
-1

Ich kodiere einen Einkaufswagen in HTML, PHP und JS. Ich habe eine onclick Funktion, die einen Cookie löscht und die Seite aktualisiert, die das Element aus dem Einkaufswagen entfernt. Dies funktioniert in Chrome und der Cookie wird gelöscht. Ich habe den gleichen Code in Firefox, aber es funktioniert nicht: Der Cookie wird in Firefox nicht gelöscht. Hier ist das Element mit dem Attribut onclick:Cookie löscht in Chrome, aber nicht Firefox?

echo '<button class="button" onclick="removeCart' . $x . '()">Remove from Cart</button>';

Hier ist die Funktion:

   echo '<script>'; 
       echo 'function removeCart' . $x . '() {'; 
       echo 'document.cookie = "' . $itemsSpaced[$x] . '= ; expires=Thu, 01 Jan 1970 00:00:00 UTC";'; 
       echo ' location.reload(true);'; 
       echo '}'; 
       echo '</script>'; 

Warum funktioniert das in Chrome, aber nicht Firefox?

+0

Wie haben Sie das Cookie? – trincot

+0

Ich setzte den Cookie auf eine andere Seite und schrieb es in JavaScript: 'document.cookie = i +" "+ item +" = "+ price +"; Pfad =/cart "' –

+1

Haben Sie versucht, '' hinzuzufügen? path =/cart' in 'removeCart'? – trincot

Antwort

1

Sie sollten sicherstellen, dass beim Löschen des Cookies dieselben Attribute path und domain hinzugefügt werden wie bei seiner Erstellung (wenn Sie eine dieser Optionen angegeben haben). Dies liegt daran, dass diese beiden Attribute die Zugänglichkeit des Cookies bestimmen.

Sie könnten zum Beispiel zwei Cookies mit demselben Namen haben, die jedoch mit einem anderen Pfad verknüpft sind. Es wäre mehrdeutig, welchen zu löschen, wenn Sie den Pfad nicht angeben würden. Scheinbar geht Firefox damit besser um als Chrome. Der Cookie sollte nicht ohne die Pfadangabe gelöscht werden.

Also sollten Sie vielleicht Ihren Code ändern:

echo 'document.cookie = "' . $itemsSpaced[$x] . '= ; path=/cart; expires=Thu, 01 Jan 1970 00:00:00 UTC";'; 
Verwandte Themen