3

在调试为什么我的扩展在 Safari 中不起作用(但对其他浏览器起作用)时,注意到我可以在 Safari 工具栏扩展中发送带有 XmlHttpRequest 的任意组成的 HTTP 标头。但是尝试对名为“Cookie”的标头执行与以前相同的内容,它不会被发送。

那么 Safari 是否限制通过请求发回 cookie,或者您需要遵循替代流程来执行此操作?似乎有点蹩脚,因为这会阻止需要会话状态持久性的应用程序的功能。如果有替代过程,Apple 会加大在扩展中维护会话状态的难度(适应 Web 应用程序或其他浏览器扩展的额外工作)。

我在带有 Charles 代理的 Mac OS X 10.7.5 上使用 Safari 5.1.7 进行了测试。

4

1 回答 1

1

只是想我应该发布对我有用的解决方案,我之前在自己的问题中评论过,以便其他有类似问题的人查看:

结果是 Safari 扩展,对我有用的是将浏览器设置为不阻止任何 cookie 和网站数据。所以用户必须这样做才能使用扩展。无需更改代码。但这并不酷。

具体步骤是Safari > Preferences > Privacy > Cookies and website data: Always allow(至少在 Mac OS Yosemite 上的 Safari 10 下)。尽管可以尝试“允许来自我访问的网站”,以查看该更具限制性的选项是否有效。

于 2015-08-11T18:11:38.873 回答