【问题标题】:Send XHR request from Chrome extension with cookies使用 cookie 从 Chrome 扩展发送 XHR 请求
【发布时间】:2012-06-20 22:05:21
【问题描述】:

我正在尝试将 XHR 请求从 Google Chrome 扩展程序发送到另一个域。这可以正常工作,但我需要随请求发送该域 cookie。有什么办法可以做到这一点?

【问题讨论】:

  • 您可以使用webRequest API 修改标头,包括Cookie。 UA spoofing + header 编辑的例子可以在here找到。
  • 为什么您认为 Chrome 不会发送用户的 cookie?我刚刚测试了它,它确实如此。该网站是否在您的权限范围内?
  • 嗯。我的错。它肯定会随请求发送 cookie。
  • 你们在做什么 ajax 库? jQuery 没有发送它..我需要使用本机 XHR 吗?

标签: google-chrome google-chrome-extension xmlhttprequest


【解决方案1】:

确保manifest.json 权限正确设置

您必须在您的 chrome 扩展程序的 manifest.json 中正确设置跨站点域请求权限。正确完成后,已经为目标域设置的 cookie 将与您向该域发出的请求一起发送。 manifest.json documentation

在玩localhost:port_number 时要特别小心。您需要在manifest.json 中完整指定该域才能使其正常工作。当我的 localhost 域没有完整指定时,我的行为很尴尬。

这就是您希望在扩展程序的manifest.json 中指定本地主机域的方式(如果有意义的话):

...
"permissions": [
    "http://localhost:3000/"
  ],
...

如果您要发送到目标域的 cookie 尚未设置,您可以使用 chrome.cookies.set 方法并通过传递给 @987654331 的对象 domain 属性指定您想要的域名@ 方法。文档在这里: chrome.cookies.set

【讨论】:

  • 为什么localhost要给跨站权限?
  • 我对“隐身”有疑问。 Chrome 使用“普通模式 cookie”,如何在该模式下使用“隐身 cookie”?
  • 你还想确保cookie路径匹配,我发现路径/a设置的cookie不会发送到url/b;不过,在路径 / 处设置的 cookie 将被发送到同一域下的所有 url。
猜你喜欢
  • 1970-01-01
  • 2019-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-30
  • 1970-01-01
  • 2014-02-09
  • 1970-01-01
相关资源
最近更新 更多