JS逆向时,报错sessionStorage is not defined,他的逻辑是先生成值,然后sessionStorage.setItem(t,e),需要调用的时候,再sessionStorage.getItem(t),也就是通过键t调用值e,但在pycharm中报错,请问何解?ps:这是拉勾网请求头参数中的逆向,如果要补环境的话,应该怎么补
在浏览器中,sessionStorage 是一个全局对象,可以通过 window.sessionStorage 或者直接使用 sessionStorage 来访问。但在 PyCharm 中执行 JavaScript 代码时,没有浏览器环境的支持,因此会报错 "sessionStorage is not defined"。
在 PyCharm 中执行这段 JavaScript 代码,需要模拟浏览器环境,可以使用第三方库 jsdom 来实现。
具体的操作步骤如下:
npm install jsdom
在 JavaScript 代码中引入 jsdom 库:
const { JSDOM } = require('jsdom');
const dom = new JSDOM('<!DOCTYPE html>');
const window = dom.window;
const sessionStorage = window.sessionStorage;
代码中使用 sessionStorage:
sessionStorage.setItem(t, e);
let value = sessionStorage.getItem(t);
这样就可以在 PyCharm 中执行这段 JavaScript 代码了。
报错sessionStorage is not defined
通常是因为在非浏览器环境下调用了sessionStorage
,因为sessionStorage
是浏览器提供的API,只能在浏览器环境下使用。
如果你想在非浏览器环境下模拟sessionStorage
的功能,可以使用第三方库,比如node-localstorage
。这个库提供了与localStorage
和sessionStorage
相同的API,可以在Node.js环境下使用。
如果你想在浏览器环境下使用sessionStorage
,请确保你的代码在浏览器环境下运行,比如在HTML文件中引入JavaScript文件,或者在浏览器的控制台中运行JavaScript代码。