2012-04-01 9 views
0

Hier ist etwas ernsthaft falsch. Ich bin ungefähr 100% sicher, dass die Bestätigungsmethode ernste Probleme mit Sitzungen auf Safari verursacht. Die Bestätigungsaufforderung fordert den Benutzer im Grunde auf, sicherzustellen, dass er/sie mit einer Aktion durchgehen möchte, bevor er einen Jquery-POST abruft. Dies funktioniert bei jedem anderen Browser einwandfrei, aber bei Safari werden die Sitzungsdaten der Benutzer gelöscht und beim Aktualisieren der Seite werden sie ausgeloggt. Ich habe die Methode entfernt und alles ist wieder normal. Hat das schon mal jemand erlebt? Sehr seltsam ... schüttelt Faust bei AppleJavascript Bestätigen Methode Kills meine Sitzungsdaten auf Safari 5.0.2

Bearbeiten: Ich habe versucht, mit Jqueries Dialog Widget und ich habe die gleichen Probleme. Was denkst du passiert?

Edit2: Für diejenigen, die neugierig sind, löscht der Alarm nicht die Sitzungsdaten, es bringt nur die Kontrolle zurück zum Client-Ende daher der Browser ist nicht wirklich in Kontakt mit seiner Server-Seite. Dieser Kommentar erklärt es am besten:

Sie müssen darauf achten, wo Ihr Code ausgeführt wird, wenn Sie mit ASP.NET sind. Da Sie in Ihrem Beispiel das Objekt Session verwenden, werden Sie auf dem Server ausgeführt. Ihr Webserver hat keine Möglichkeit einen Warndialog auf dem Computer des Benutzers anzuzeigen. Stattdessen muss er JavaScript-Code an den Client schreiben, der dann diesen Code ausführen und dem Benutzer eine Warnung geben kann. Also müssen Sie Ihren Ansatz ändern. Wenn Sie die Warnung benötigen, müssen Sie die Informationen an den Client füttern, und die gesamte Überprüfung dort stattfinden, in welchem ​​Fall Sie Zugriff auf Ihre Sitzungsvariable verlieren (auf dem Server gespeichert), so die nur Vergleich, den Sie tun können, basiert auf etwas auf dem Formular oder etwas, das Sie auf den Client-Rechner schreiben.

Referenz: http://www.velocityreviews.com/forums/t65880-javascript-alert-function.html

Es ist lächerlich zu sehen, dass Safari nicht automatisch mit dieser Situation umgehen, wie es Pendants.

Edit3: Mehr Beweis! Eine schnelle Google-Suche ergab, dass viele Leute auf Safari Beschwerden über das zufällige Abmelden von Facebook haben. Facebook hat auch Popup-Warnmeldungen, die Sie über wichtige Instanzen informieren, z. B. wenn Sie von einer halb geschriebenen Nachricht weggehen. Ich werde jedes Mal ausgeloggt, wenn der Ballon mich warnt! Es ist wie ein harter Türsteher für Safari. Was geht hier vor sich?

+0

Die Sitzung ist ein serverseitiges Konzept; Es wird nur im Browser durch einen Cookie mit einem bestimmten Namen und Wert angezeigt. Wollen Sie damit sagen, dass der Aufruf 'confirm()' diesen Cookie löscht? – Pointy

+0

Ja, ich denke das ist was hier passiert. Ich werde überprüfen, ob die Sitzungs-ID gelöscht wird, aber ich bin mir sicher, dass der Bestätigungsaufruf meine Sitzung irgendwie beeinflusst. – captainspi

+1

Nicht so positiv jetzt, was? –

Antwort

-1

Okay, hier ist die Lösung, wenn Sie Safari 5.0.5 JETZT AKTUALISIEREN! 5.0.5 ist Müll. Nennen Sie das einen Zufall, aber für mich hat dies das lange Klischee über die Unfähigkeit von Apple, gute Software zu entwickeln, wieder verstärkt.

Verwandte Themen