【问题标题】:Firefox extension/addon does not store cookiesFirefox 扩展/插件不存储 cookie
【发布时间】:2018-04-16 21:03:04
【问题描述】:

我正在开发一个通过 XMLHttpRequests 对远程服务器进行身份验证的浏览器扩展。在 Firefox (59.0.2) 中,我遇到服务器发送的会话 cookie 未存储在浏览器中的问题。在查看网络流量时,我会从服务器收到每个请求的 Set-Cookie 响应:

Set-Cookie JSESSIONID=node01abks2u96hf84wt0i1uqwsb9879.node0;Path=/

但似乎 cookie 从未被接受或存储在扩展程序中。

在查看 Chrome(扩展程序正在工作的地方)时,我的扩展程序在请求中包含此 cookie:

Cookie: io=jCX1X9rlaOhCqE0nAAAB JSESSIONID=node01abks2u96hf84wt0i1uqwsb9879.node0

但是,在 Firefox 中情况并非如此。为什么 Firefox 在请求中不包含 cookie?为什么它不存储cookie?

更新:按照建议,我提交了错误报告: https://bugzilla.mozilla.org/show_bug.cgi?id=1454806

此外,我创建了一个非常小的示例插件,但失败了: https://gitlab.com/czeidler/firefox-cookie-problem 有人可以让我知道该插件是否真的可以工作吗?还是我做错了什么?要触发问题,请打开插件的调试视图并选择网络视图。然后单击插件弹出图标。这将触发对我的服务器的两个请求。第一个回复包含一个未在第二个请求中重用的 Set-Cookie 标头。

【问题讨论】:

  • 也许您的 Firefox 被配置为从不记住历史?否则可能是一个bug,尝试搜索bugzilla。

标签: cookies firefox-addon setcookie


【解决方案1】:

我找到了它不起作用的原因。 Firefox 将来自弹出窗口的请求作为跨域请求处理,因此不会设置 cookie。不确定 Chrome 和 Firefox 是否应该在这里表​​现相同,或者哪种方法更好。以下是我解决此问题以使其在两种浏览器中都能正常工作的方法:

在服务器上:

response.addHeader("Access-Control-Allow-Origin", request.getHeader("Origin")) response.addHeader("Access-Control-Allow-Credentials", "true")

在弹出窗口中:

connection.withCredentials = true;

【讨论】:

    猜你喜欢
    • 2011-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多