2012-06-18 117 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

相關問題