2012-06-18 120 views
6

我正尝试从Google Chrome扩展程序向另一个域发送XHR请求。这将工作正常,但我需要发送该域的cookie与请求。任何方式来做到这一点?通过Cookie发送Chrome扩展程序中的XHR请求

+0

您可以使用['webRequest'](http://code.google.com/chrome/extensions/webRequest.html#event-onBeforeSendHeaders)API修改标头,包括'Cookie'。 UA欺骗+标题编辑的一个例子可以在[这里]找到(http://stackoverflow.com/a/10339902/938089?associate-a-custom-user-agent-to-a-specific-google-chrome-page -标签)。 –

+0

为什么你觉得Chrome不会发送用户的cookies?我只是测试它,它确实如此。该网站是否在您的权限? –

+0

呵呵。我的错。它肯定会发送与请求的cookie。 – nathancahill

回答

5

确保manifest.json权限正确设置

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

localhost:port_number时,你必须特别小心。您需要在manifest.json中完全指定该域才能正常工作。当我的localhost域未被完整指定时,我最终遇到了一些尴尬的行为。

这是你如何想指定分机的manifest.json本地主机域名(如果是有道理的):

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

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

+1

为什么localhost提供跨站点权限? – itchyspacesuit

相关问题