我的代码在Chrome和Edge中运行良好,但我在Firefox中收到此错误:
TypeError:' key'调用了一个没有实现接口存储的对象
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);
}
});
}
});
}
答案 0 :(得分:1)
您正在尝试在AJAX请求中传递整个 sessionStorage
对象。不要那样做。而是拉出您需要的特定键。像这样:
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);
}
});
}
});
}
我还建议您返回JSON而不是纯文本,因为后者会导致空白问题导致意外结果。它的类型也更好,因此您可以返回一个布尔状态标志,例如:
if (response.success) {
// your logic here...
}
答案 1 :(得分:0)
我能够通过以下解决方法解决这个问题:
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);
}
});
}
});
}