【问题标题】:How can I access document.cookie from inside a Web Worker?如何从 Web Worker 内部访问 document.cookie?
【发布时间】:2012-11-05 03:33:56
【问题描述】:

由于 Web Worker 无法访问 document 对象,我如何在工作脚本中访问 c​​ookie?

背景

我正在使用 Django,我需要在 AJAX 帖子中传递 CSRF 令牌。这样做的标准方法是从document.cookie 获取令牌并将其作为标头传递:

xhr.setRequestHeader('X-CSRFToken', readCookie('csrftoken'));

(source)

网络工作者支持XMLHttpRequest,似乎他们将cookie发送到服务器,但我找不到在脚本本身中获取cookie的方法。

【问题讨论】:

  • 调用postMessage()时不能传递cookie值?
  • @pd40 是的,这是一种选择。另一种是在提供worker脚本时直接渲染。我想知道是否有一个我错过的更直接的选择。

标签: html cookies xmlhttprequest web-worker


【解决方案1】:

xhr.setRequestHeader('X-CSRFToken', readCookie('csrftoken')); 之前创建一个变量来存储cookie,如下所示:

ck = readCookie('csrftoken');`Removing "var" variable "ck" becomes global. This way you can access it from outside the Web Worker.`
xhr.setRequestHeader('X-CSRFToken', ck);

在 ck 你有 cookie。

【讨论】:

    猜你喜欢
    • 2017-06-14
    • 1970-01-01
    • 1970-01-01
    • 2019-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多