2016-08-05 78 views
0

Ich habe eine Website mit vielen Produkten, die von Kunden gekauft werden können.Laden Sie die Seite selbst, wenn 410 Fehler absichtlich für SEO-Zwecke gesendet wird

Ich habe eine adding to cart Schaltfläche implementiert, die das Produkt zu einer Session-Variablen hinzufügt, nachdem Sie darauf geklickt haben. Ein Teil davon, gibt es ein Einkaufswagen-Symbol in der Kopfzeile der Seite, die eine Zahl hat, die abhängig von der Menge der Produkte, die es auf dem Warenkorb mit einer jquery-Funktion gibt: $("#topcart").load(location.href+" #topcarrito");. Es lädt nur das div, das die Länge des Arrays enthält, das die Cart-Session-Variable des Produkts enthält.

Dieses ganze Zeug hat immer perfekt funktioniert, da mein SEO-Mitarbeiter wollte, dass ich einen 410er Fehlercode für SEO-Zwecke auf einige Produkte anwende, um weniger Produkte indizieren zu lassen, da sie redundant waren (nicht-reiche Beschreibungen und so). Die Art und Weise, wie ich es gemacht habe, war es, ihnen header('HTTP/1.1 410 Gone'); hinzuzufügen.

Das Problem ist, dass zu diesem Zeitpunkt, wenn ich versuche, ein Produkt, das eine 410 Fehler in den Warenkorb eingerichtet hat, wie der Webbrowser den Fehler erkennt, lädt es nicht das div mit der aktualisierten Menge der Produkte im Wagen. Stattdessen zeigt die Konsole den 410error an. Wenn ich jedoch die Seite neu laden möchte, indem Sie F5 anklicken, wird die Anzahl der Produkte im Warenkorb richtig geladen, so dass das Produkt zum Warenkorb hinzugefügt wurde.

Gibt es eine Möglichkeit, dieses div auch zu laden, wenn der Browser den Fehler 410 erkennt?

Antwort

0

Nur für den Fall, dass jemand auch dieses Problem hat, habe ich endlich einen Weg gefunden, es zu lösen.

Was ich getan habe, ist eine neue php-Datei, die die Anzahl der Sitzungsarray erhält und Echo, erhalten Sie durch einen AJAX-Aufruf und dann ändern Sie die Div mit einem einfachen $("#topcarrito").text(value), so dass Sie die Seite nicht laden müssen das gibt den 410 Fehler.