41 votes

Impossible de définir les cookies en Javascript

J'ai une ligne de code très simple qui définit et lit un cookie. Je continue à obtenir une valeur vide pour mon cookie et je ne comprends pas pourquoi. J'ai activé les cookies et je sais qu'ils fonctionnent sur le navigateur.

<HTML>
    <HEAD>
        <TITLE>Hello World</TITLE>
    </HEAD>
    <BODY>
        <SCRIPT type="text/javascript">
            document.cookie = "ding=dong";
        </SCRIPT>
        <script type="text/javascript">
            alert(document.cookie);
        </script>
    </BODY>
</HTML>

2voto

Anne Lingesh Points 65

Chrome ne stocke pas les cookies des pages qui sont chargées à partir du système de fichiers local. ex : file:///C:/User

1voto

AlphaMale Points 10074

Cela fonctionne bien pour moi, mais une fois de plus, assurez-vous que si votre JS y Cookies sont activés dans le navigateur. Vous devez vérifier si votre cookie est correctement paramétré ou non en utilisant if(document.cookie) Il vous sera alors plus facile de déboguer l'origine du problème. Peut-être que vos cookies ne sont pas écrits correctement. Veuillez considérer le code suivant.

Écrire le cookie

Utilisez le code suivant pour écrire votre cookie :

<script language="JavaScript">
 cookie_name = "Basic_Cookie";
 function write_cookie() {
 if(document.cookie) {
 index = document.cookie.indexOf(cookie_name);
 } else {
 index = -1;
 }

 if (index == -1) {
 document.cookie=cookie_name+"=1; expires=Wednesday, 01-Aug-2040 08:00:00 GMT";
 } else {
 countbegin = (document.cookie.indexOf("=", index) + 1);
 countend = document.cookie.indexOf(";", index);
 if (countend == -1) {
 countend = document.cookie.length;
 }
 count = eval(document.cookie.substring(countbegin, countend)) + 1;
 document.cookie=cookie_name+"="+count+"; expires=Wednesday, 01-Aug-2040 08:00:00 GMT";
 }
 }
 </script>

Lisez votre cookie

Une fois que vous avez écrit le cookie, vous devez le lire pour pouvoir l'utiliser. Utilisez ce script pour lire votre cookie :

<script language="JavaScript">
 function gettimes() {
 if(document.cookie) {
 index = document.cookie.indexOf(cookie_name);
 if (index != -1) {
 countbegin = (document.cookie.indexOf("=", index) + 1);
 countend = document.cookie.indexOf(";", index);
 if (countend == -1) {
 countend = document.cookie.length;
 }
 count = document.cookie.substring(countbegin, countend);
 if (count == 1) {
 return (count+" time");
 } else {
 return (count+" times");
 }
 }
 }
 return ("0 times");
 }
 </script>

Appelez votre cookie dans un lien

Définissez votre cookie lorsque quelqu'un clique sur un lien avec ce code dans votre corps HTML :

<script language="javascript">document.write(gettimes());</script>

Référence : Lecture et écriture simples de cookies

J'espère que cela vous aidera.

0voto

Steve Smith Points 1664

Utilisez Stockage local HTML5 à la place :-

<HTML>
    <HEAD>
        <TITLE>Hello World</TITLE>
    </HEAD>
    <BODY>
        <SCRIPT type="text/javascript">
            localStorage.setItem("myCookie", "ding=dong");
        </SCRIPT>
        <script type="text/javascript">
            alert(localStorage.getItem("myCookie"));
        </script>
    </BODY>
</HTML>

-1voto

free Points 42

Il suffit de changer l'URL de l'interface réseau de bouclage par l'adresse de la NIC de votre réseau local pour que cela fonctionne, par exemple

http://localhost:8080 -> http://192.168.1.15:8080

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X