Der RESTful-Cookie-Pfad schlägt im IE ohne abschließenden Schrägstrich fehl

8

Ich wurde gebeten, auf Seiten mit REST-URLs ohne abschließenden Schrägstrich (.NET MVC) einen Tabbed-Abschnitt zu erstellen, z. B. Ссылка

Damit die Registerkartenabschnitte etwas benutzerfreundlicher sind, möchte ich, dass sie sich merken, welcher Tab auf jeder Seite geöffnet war, wenn der Benutzer sich bewegt. Wenn sie zu einem Buch zurückkehren, blieben sie zuvor auf derselben Registerkarte geöffnet. Dies wird erreicht, indem ein Cookie mit dem Namen "tab" gesetzt wird, dessen Wert auf den Tab und den Pfad gesetzt ist, der auf die Seite gesetzt ist, auf der sie sich befinden (also nicht auf Tabs anderer Seiten). Bis jetzt ziemlich einfaches Zeug, das man denkt, und es funktioniert auch ganz gut.

Geben Sie den Internet Explorer ein.

In IE stellt sich heraus, dass ein Cookie mit dem Pfad / books / the-amber-spyglass NICHT mit der obigen URL übereinstimmt und folglich nicht richtig gesetzt wird. Wenn ich einen abschließenden Schrägstrich hinzufüge, so ist der Pfad / books / the-amber-spyglass / stattdessen funktioniert es gut - aber ich kann unser URL-Schema nicht ändern, und selbst wenn ich könnte "the-amber-spyglass" ist eine Ressource, nicht ein Mappe.

Hat jemand eine empfohlene Lösung für dieses sicherlich äußerst häufige Problem?

Vielen Dank im Voraus,

JS

    
John Schulze 28.01.2010, 17:07
quelle

1 Antwort

8

Siehe Ссылка

  

Wegen eines obskuren Fehlers in der   zugrunde liegenden WinINET InternetGetCookie   Implementierung, IEs Dokument.cookie   gibt kein Cookie zurück, wenn es gesetzt wurde   mit einem Pfadattribut, das a enthält   Dateiname.

     

Zum Beispiel, wenn eine Seite einen Cookie setzt   auf sich selbst so:

     

Set-Cookie:   HTTPSet-PathCookie = PASS; Pfad = / check.htm

     

... der Cookie wird mit HTTP gesendet   Anfragen werden aber nicht in der erscheinen   document.cookie Sammlung.

    
EricLaw 29.01.2010, 23:29
quelle