probleme avec sessionStorage
Modérateurs : nico@nc, Mori, jpj, myahoo
probleme avec sessionStorage
Bonjour,
J'ai un site internet qui fonctionnait très bien sur Firefox mais depuis que je l'ai mis à jour avec la version 34.0.5, j'ai le problème suivant :
TypeError: 'key' called on an object that does not implement interface Storage
Je travaille avec sessionStorage ( sessionStorage.setItem(id, value) ) en Jquery. ex d'un item stocké (1615_Article_102390 = "102390" )
Je récupère tous mes items par var ArrayInstal = sessionStorage; puis je les envoies vers un fichier PHP par le biais d'Ajax.
Mais c'est à cet instant que j'obtiens ce message.
Un console.log sur ma session ne me montre aucune erreur. Le script fonctionne sous Safari et Chrome.
Je ne vois pas ou chercher ce qui a changé dans Firfox entre les deux versions sur les sessions.
Cela m'embête car je suis un inconditionnel de FireFox depuis des années.
Merci de votre aide
Votre Navigateur : Mozilla/5.0 (Windows NT 6.3; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0
J'ai un site internet qui fonctionnait très bien sur Firefox mais depuis que je l'ai mis à jour avec la version 34.0.5, j'ai le problème suivant :
TypeError: 'key' called on an object that does not implement interface Storage
Je travaille avec sessionStorage ( sessionStorage.setItem(id, value) ) en Jquery. ex d'un item stocké (1615_Article_102390 = "102390" )
Je récupère tous mes items par var ArrayInstal = sessionStorage; puis je les envoies vers un fichier PHP par le biais d'Ajax.
Mais c'est à cet instant que j'obtiens ce message.
Un console.log sur ma session ne me montre aucune erreur. Le script fonctionne sous Safari et Chrome.
Je ne vois pas ou chercher ce qui a changé dans Firfox entre les deux versions sur les sessions.
Cela m'embête car je suis un inconditionnel de FireFox depuis des années.
Merci de votre aide
Votre Navigateur : Mozilla/5.0 (Windows NT 6.3; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0
Re: probleme avec sessionStorage
Peux-tu donner un testcase avec le pbm stp, ça sera plus simple que du code dans le "vide". 
Votre Navigateur : Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0

Votre Navigateur : Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0
Re: probleme avec sessionStorage
Oui, j'ai refait une page avec un minimum :
resultat au click :
TypeError: 'key' called on an object that does not implement interface Storage
Votre Navigateur : Mozilla/5.0 (Windows NT 6.3; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0
Code : Tout sélectionner
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="initial-scale=1.0, maximum-scale=2.0">
<title>test</title>
</head>
<body>
<a id="godevis" href="#" class="tiny button secondary">click</a>
<script type="text/javascript" src="js/jquery.2.1-min.js"></script>
<script type="text/javascript">
//<![CDATA[
(function($) {
$.ajaxpost = function(params) {
var defauts = {
Url : "php/interventiondata.php",
dataType : "json",
Type2 : ""
, Lang : "fr"
};
var paramatre1 = $.extend(defauts, params);
var datapost;
$.ajax({
url: paramatre1.Url,
global: false,
type: "POST",
data: ({
Type: paramatre1.Type,
Type2: paramatre1.Type2,
Data : paramatre1.Data
,Lang : paramatre1.Lang
}),
dataType: paramatre1.dataType,
async:false
})
.done(function(data){
datapost = data;
})
.fail(function(jqXHR, textStatus) {
alert( "LA REQUETTE A ECHOUEE MERCI DE RECOMMENCER: " + textStatus );
});
return datapost;
};
})(jQuery);
$(document).ready(function() {
// JE STOCK UNE VARIABLE DE SESSION
sessionStorage.setItem("104005", "1615");
$( "#godevis" ).click(function(){
//JE RECUPERE L ENSEMBLE DES VARIABLES
var ArrayInstal = sessionStorage;
//J ENVOIE LES DONNEES
var Tableau = $.ajaxpost({Type:"CreerDevis",Data:ArrayInstal});
return false;
});
});
//]]>
</script>
</body>
<html>
TypeError: 'key' called on an object that does not implement interface Storage
Votre Navigateur : Mozilla/5.0 (Windows NT 6.3; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0
Re: probleme avec sessionStorage
Bon,
Pour que ce qui auront le même problème que moi voici la réponse (après quelques heures de recherche) :
Avant dans php je récupérais le POST avec $_POST['Data']['ArrayInstal']["Ma_clef"] maintenant il faut écrire :
$ArrayInstal = json_decode($_POST['Data']["ArrayInstal"]);
puis
$ArrayInstal->Ma_clef
Reste à voir le problème du retour d'info, car si vous écrivez le script tel quel vous obtiendrez :
Cela vient de async:false dans ajax, le problème c'est que quand je l'enlève, je n'ai plus le message mais ma variable "datapost" devient null.
Si je trouve je vous donnerai la solution, ou si une âme charitable la ?
Votre Navigateur : Mozilla/5.0 (Windows NT 6.3; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0
Pour que ce qui auront le même problème que moi voici la réponse (après quelques heures de recherche) :
Par contre pour l'envoie avec ajax dans votre fichier PHP cela deviendra un objet.var ArrayInstal = JSON.stringify(sessionStorage);
Avant dans php je récupérais le POST avec $_POST['Data']['ArrayInstal']["Ma_clef"] maintenant il faut écrire :
$ArrayInstal = json_decode($_POST['Data']["ArrayInstal"]);
puis
$ArrayInstal->Ma_clef
Reste à voir le problème du retour d'info, car si vous écrivez le script tel quel vous obtiendrez :
L'utilisation d'XMLHttpRequest de façon synchrone sur le fil d'exécution principal est obsolète à cause de son impact négatif sur la navigation de l'utilisateur final. Consulter http://xhr.spec.whatwg.org/ pour plus d'informations.
Cela vient de async:false dans ajax, le problème c'est que quand je l'enlève, je n'ai plus le message mais ma variable "datapost" devient null.
Si je trouve je vous donnerai la solution, ou si une âme charitable la ?
Votre Navigateur : Mozilla/5.0 (Windows NT 6.3; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0
Qui est en ligne ?
Utilisateurs parcourant ce forum : vinvin et 2 invités