Jupyter Creating Notebook failed: FORBIDDEN
我刚刚将Jupyter升级到4.3.1版本
虽然我可以打开以前创建的ipynb文件,但我无法创建新文件。
当我尝试创建一个新的笔记本文件时,我得到一个弹出窗口说:
创建笔记本失败
创建新笔记本时发生错误
被禁止
在终端我注意到这个输出:
1 2 | [W 12:53:23.375 NotebookApp] 403 POST /api/contents (::1): '_xsrf' argument missing from POST [W 12:53:23.383 NotebookApp] 403 POST /api/contents (::1) 8.92ms referer=http://localhost:8888/tree?token=e7fbbb58516dc1359fcc26a1079093166a1f713ee5b94ccd |
我使用Jupyter与Python 3.5.2和IPython 5.1.0
我必须在浏览器中启用cookie(我故意禁用它)。 然后"禁止"错误消失了,现在一切正常。
The generally accepted solution to prevent XSRF is to cookie every user with an unpredictable value and include that value as an additional argument with every form submission on your site.
来自:http://tornado.readthedocs.io/en/latest/guide/security.html#cross-site-request-forgery-protection
确认问题的另一种方法是在另一个浏览器中打开您的Jupyter会话,您可能会被重定向到如下屏幕:
如果您打开一个新的控制台并键入
1 | jupyter notebook list |
您将看到当前的笔记本和URL将包含令牌。 在新标签中打开它并解决问题。
输出命令应如下所示:
1 2 | Currently running servers: http://localhost:8888/?token=cbad1a6ce77ae284725a5e43a7db48f2e9bf3b6458e577bb :: <path to notebook> |
我刚才遇到了这个问题,但我注意到它在Edge中有效。 删除Chrome中的所有浏览器缓存(包括Cookie)解决了这个问题。