我已经在jupyter笔记本上运行了大约26个小时的脚本;我没有真正使用我的电脑做任何其他事情,但它需要运行这个程序,需要大约30个小时才能完成。大约21小时后,它停止保存,我的终端出现了这样的情况:

403 PUT /api/contents/[file.ipynb] (::1): '_xsrf' argument missing from POST

(文件的地方。Ipynb]是我的jupyter笔记本的位置。它还说:

'_xsrf' argument missing from post

在笔记本的右上角。程序仍在运行,我不想重新启动jupyter notebook,不得不再次运行程序,因为我有一个截止日期,还有什么我可以做的吗?

我使用谷歌chrome,但我没有LastPass扩展或任何'%'字符在我的代码,作为另一个帖子建议。

谢谢你的帮助!


当前回答

我相信有足够的解决方案来解决这个问题。 但是为了防止有人想知道为什么会出现这个错误:

当您试图向Jupyter笔记本服务器发出POST请求时,通常会遇到“XSRF参数missing from POST”错误,并且服务器无法验证请求是否合法。

当请求缺少所需的XSRF(跨站点请求伪造)令牌时,可能会发生此错误。这个令牌是一种安全措施,通过确保对服务器的请求是合法的,有助于防止恶意攻击。

其他回答

当我点击“保存”按钮时,它有这个错误。根据这篇文章和其他网站的答案,我找到了解决方案。 我的jupyter笔记本电脑是从pip安装的。所以我通过在windows命令行中输入“jupyter notebook”来访问它。

(1)打开一个新的命令窗口,然后打开一个新的jupyter笔记本。 尝试在旧笔记本中再次保存,这一次,错误是“失败:禁止”

(2)然后在旧笔记本上,点击“下载为”,它会弹出一个新的窗口问你的令牌。

(3)打开另一个命令窗口,然后打开另一个jupyter笔记本,输入'jupyter笔记本列表' 将'token='之后和::之前的代码复制到刚才看到的方框中。你可以节省这段时间。如果失败,可以尝试列表中的另一个令牌

你可以通过启动JupyterLab来禁用XSRF检查:

jupyter lab --ServerApp.disable_check_xsrf=True

这可能意味着您的服务器没有经过令牌验证。例如,您可能已经启动了JupyterLab:

jupyter lab --NotebookApp.token='' --NotebookApp.password=''

这也可能意味着您在本地机器上运行JupyterLab,而您的服务器无法远程访问,所以这没有问题。

但是通常要注意,如果您的服务器没有身份验证,那么它很容易受到XSRF的攻击。

对我来说有用的只是改变内核。 要更改内核,只需转到笔记本的顶部页面栏,选择kernel,然后更改kernel,然后从您拥有的内核中选择另一个内核(显然,您需要至少有两个预设内核)。 更改后,post中缺失的消息“_xsrf”参数消失了,笔记本可以再次保存。

在我的情况下,我有一个关闭标签的主页。重新打开Jupyter后。错误自动消失,我们可以保存文件。

我只需要刷新树选项卡就可以了。