2016-08-01 12 views
0
umleiten

Meine Seite HTML eine Spanne (mit Text) enthält, deren onClick = "goDropShip();"Kann kein JavaScript Cookie abzurufen, nachdem Cookie fallen, bevor

Die Seite ein Skript enthält, das enthält:

function goDropShip() { 

    var date = new Date(); 
    date.setTime(date.getTime()+(24*60*60*1000)); 
    document.cookie = "dropShip=true; expires="+date.toGMTString(); 
    window.location.href="http://www.domain.com"; 

} 

ich überprüft haben, mit "alert() ", dass die Funktion tatsächlich ausgeführt wird. Und das Testen des Cookies unmittelbar nach dem Ablegen ist erfolgreich. Nach der Weiterleitung scheint der Cookie jedoch leer zu sein.

www.domain.com die index.html (die diese Umleitung empfängt) hat ein Skript mit dem folgenden:

if (document.cookie.indexOf("dropShip=true") >= 0 ) { 
    window.location = "http://www.domain.com/processDropShip"; 
} 

jedoch das Cookie erscheint nach der Umleitung vollständig leer zu sein.

Ich versuche .indexOf() nur, weil Versuche, den Cookie speziell nach Namen abzurufen, ebenfalls fehlgeschlagen sind, also versuche ich, den Cookie im gesamten document.cookie Text zu finden.

Ich benutze wahrscheinlich nur die Cookies nicht richtig, oder ich weiß nicht wie.

Verzeihen Sie, dass "dropShip" scheint in diesem Zusammenhang keinen Sinn zu machen, aber ich muss die Details aus Sicherheitsgründen verschleiern. Aber das einzige, was ich geändert habe, ist der Cookie-Name.

Wie immer, danke für jede Hilfe.

+1

Cookies sind domänenspezifisch. Ist das die gleiche Domain? – PHPglue

+0

Wenn die Domäne, auf die Sie den Cookie setzen, nicht "http: // www.domain.com" ist (www. Macht einen Unterschied wie http oder https, muss dieselbe Subdomain sein usw.), dann werden Sie nicht sein in der Lage, den Keks auf der anderen Seite zu lesen. Wenn Sie jedoch dieselbe Domäne verwenden, sollten Sie sicherstellen, dass Sie auch den Pfad für das Vorhandensein des Cookies angeben. z.B. 'path = /' – Ultimater

+0

Ultimater, können Sie ein Beispiel für den Pfad im Code geben? Danke –

Antwort

0

Wenn die Domäne, aus der Sie den Cookie setzen und zu der er weitergeleitet wird, nur den Pfad / haben muss, während Sie den Cookie hinzufügen, damit er in der gesamten Domäne zugänglich ist.

document.cookie = "dropShip=true; path=/; expires="+date.toGMTString();

+1

Danke, Arjun. Das hat den Trick gemacht! –