Môj kód funguje dobre v prehliadačoch Chrome a Edge, ale vo Firefoxe sa mi zobrazuje táto chyba:
TypeError: "kľúč" vyvolaný na objekte, ktorý neimplementuje rozhranie Storage
function goToNextStep() {
$.post("../manager.php", {
dados: sessionStorage,
action: "save"
}, function(response) {
if (response === "1") {
$.ajax({
type: "GET",
url: "../final.php",
success: function(data) {
$("#content").html(data);
}
});
}
});
}
odpovede:
1 pre odpoveď č. 1Snažíte sa prejsť okolo celý sessionStorage
objekt v žiadosti AJAX. Nerobte to. Namiesto toho vytiahnite konkrétne klávesy, ktoré požadujete. Niečo také:
function goToNextStep() {
$.post("../manager.php", {
dados: {
foo: sessionStorage.getItem("foo"),
bar: sessionStorage.getItem("bar")
},
action: "save"
}, function(response) {
if (response === "1") {
$.ajax({
type: "GET",
url: "../final.php",
success: function(data) {
$("#content").html(data);
}
});
}
});
}
Navrhujem tiež, aby ste namiestoobyčajný text, pretože ten môže viesť k problémom s prázdnymi znakmi, ktoré spôsobia neočakávané výsledky. Je to tiež lepšie napísané, takže môžete vrátiť boolovský stavový príznak, napríklad:
if (response.success) {
// your logic here...
}
0 pre odpoveď č. 2
Dokázal som to vyriešiť pomocou tohto riešenia:
function goToNextStep() {
$.post("../manager.php", {
dados: JSON.parse(JSON.stringify(localStorage)), // <----- change
action: "save"
}, function(response) {
if (response === "1") {
$.ajax({
type: "GET",
url: "../final.php",
success: function(data) {
$("#content").html(data);
}
});
}
});
}