我可以看到,当我从我的Chrome应用程序发出xhr时,它会发送一些cookie,这些cookie会在应用程序中跟踪。发送set-cookie标头的服务器正在正确更新它们。我需要读一个cookie,然后我尝试使用“cookies”权限,但是chrome对我大吼...我还能使用另一个api吗?
编辑:我正在使用新的打包应用。
答案 0 :(得分:4)
Cookie显然是Chrome Packaged Apps的一个黑暗区域。
使用Extensions,扩展程序与正常浏览活动共享cookie jar。对于打包应用程序,每个应用程序都有一个单独的jar。
当前的行为似乎是对权限部分清单中指定的站点的XHR请求确实在这个jar中设置了cookie,但除了重新安装应用程序之外,没有办法摆脱它们。 Packaged Apps没有用于管理cookie的API,它们的cookie不会显示在Developer工具或about:// settings / cookies页面中。
crbugs包括
https://code.google.com/p/chromium/issues/detail?id=70391 https://code.google.com/p/chromium/issues/detail?id=152758 https://code.google.com/p/chromium/issues/detail?id=157474
并且这两个问题已经填写以回应这个SO问题
https://code.google.com/p/chromium/issues/detail?id=236585 https://code.google.com/p/chromium/issues/detail?id=335934
答案 1 :(得分:2)
我遇到了一个类似的问题,在具有chrome.socket api权限的打包应用中对XHR的安全限制似乎有些过分。见Setting "unsafe" headers in packaged app XHR
我最终为我的用例创建了一个“垫片”xhr对象,尽管它没有处理例如分块编码。您可能会发现它很有用:https://github.com/kzahel/jstorrent/blob/fresh/js/chromesocketxhr.js
我最后在crbug上提交了一个错误:https://code.google.com/p/chromium/issues/detail?id=335934