javascript - 带有 JSON.stringify 的 sessionStorage.setItem 导致 javascript 函数失败
问题描述
我在 sessionStorage 中存储了两个项目,一个整数和一个字符串数组。我可以在 Chrome 开发控制台(应用程序 - sessionStorage)中看到这些项目,它们是正确的。
现在在 Chrome 开发控制台中显示的值是:
HTTP_Index 4
HTTP_History ["Start","text_14","text_7","text_10"]
在一个 javascript 函数中,我从 sessionStorage 中检索它们:
var HTTP_Index = sessionStorage.getItem(HTTP_Index);
var HTTP_History = sessionStorage.getItem(HTTP_History);
p_Index = JSON.parse(HTTP_Index);
p_History = JSON.parse(HTTP_History);
我减少索引:
p_Index = p_Index - 1;
console.log("HTTP_Index Now " + p_Index);
并且日志显示该值现在为 3。
接下来我将值 p_Index 存储回 sessionStorage:
sessionStorage.setItem("HTTP_Index", JSON.stringify({ "p_Index" });
无论我是否将 p_Index 括在引号中,开发控制台现在都将函数显示为“未定义”。
接下来我试着这样做:
sessionStorage.setItem("HTTP_Index", JSON.stringify({ "p_Index" });
但同样的问题。所以最后我尝试了这个:
var obj = { HTTP_Index: p_Index };
var objJSON = JSON.stringify(obj);
sessionStorage.setItem(objJSON);
但 Chrome 开发控制台显示:
Uncaught TypeError: Failed to execute 'setItem' on 'Storage': 2 arguments required, but only 1 present.
将 JSON.stringify 用于 sessionStorage.setItem 时我做错了什么?
谢谢你的帮助。
解决方案
在您的最新示例中:
var obj = { HTTP_Index: p_Index };
var objJSON = JSON.stringify(obj);
sessionStorage.setItem(objJSON);
sessionStorage.setItem 第一个参数必须是您要设置的键,第二个是您要存储的数据。所以你错过了钥匙/名字。
推荐阅读
- sql - 无效的列名 - 表中的所有列
- jquery - 如何在 Vue.JS 中的 v-if 之后运行方法?
- python - Django 应用程序、功能和模型
- java - Parcelable 类不生成 Parcelable 对象
- sql - 设置 Form(subForm) 记录源等于 ComboBox
- ember.js - 将查询响应分配给模型字段时丢失大量 ember-data 类属性
- python-3.x - 如何在python 3中搜索文本文件
- c# - 在 MacOS 上对来自 .NET Core 的 HttpClient 调用进行身份验证
- c# - 程序如何使用非静态类库?
- python - PyQt5.QtWidgets.QApplication 在更新到 mojave 后因缺少可可插件错误而崩溃