2012-06-18 18 views
6

मैं Google Chrome एक्सटेंशन से किसी अन्य डोमेन पर XHR अनुरोध भेजने की कोशिश कर रहा हूं। यह ठीक काम करेगा, लेकिन मुझे अनुरोध के साथ डोमेन डोमेन भेजने की जरूरत है। इसे करने का कोई तरीका?कुकीज़ के साथ क्रोम एक्सटेंशन से XHR अनुरोध भेजें

+0

आप 'कुकी' सहित शीर्षकों को संशोधित करने के लिए ['webRequest'] (http://code.google.com/chrome/extensions/webRequest.html#event-onBeforeSendHeaders) API का उपयोग कर सकते हैं। UA स्पूफ़िंग + हेडर संपादन का एक उदाहरण पाया जा सकता है [यहां] (http://stackoverflow.com/a/10339902/938089?associate-a-custom-user-agent-to-a- विशिष्ट-google-chrome-page -tab)। –

+0

आप इस धारणा के तहत क्यों हैं कि क्रोम उपयोगकर्ता की कुकीज़ नहीं भेजेगा? मैंने अभी इसका परीक्षण किया, और यह करता है। क्या आपकी अनुमति में साइट है? –

+0

हू। मेरी गलती। यह निश्चित रूप से अनुरोध के साथ कुकीज़ भेजता है। – nathancahill

उत्तर

5

यकीन manifest.jsonअनुमतियाँसेटअप ठीक हों।

आपको अपने क्रोम एक्सटेंशन के manifest.json में क्रॉस साइट डोमेन अनुरोध अनुमति को ठीक से सेट करना होगा। जब सही तरीके से किया जाता है, तो कुकीज़ जो पहले से लक्षित डोमेन के लिए सेट की गई हैं, उस डोमेन के अनुरोध के साथ भेजी जाएगी। manifest.json documentation

localhost:port_number के साथ खेलते समय आपको विशेष रूप से सावधान रहना होगा। काम करने के लिए आपको manifest.json में उस डोमेन को पूर्ण रूप से निर्दिष्ट करने की आवश्यकता होगी। जब मैं अपने स्थानीयहोस्ट डोमेन को पूर्ण रूप से निर्दिष्ट नहीं करता था तो मैं अजीब व्यवहार के साथ समाप्त हुआ।

इस तरह आप अपने विस्तार की manifest.json में अपने स्थानीय होस्ट डोमेन निर्दिष्ट करने के लिए (है कि अगर समझ में आता है) चाहते हैं:

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

कुकीज़ आप लक्षित डोमेन के लिए भेजना चाहते हैं अभी तक सेट नहीं कर रहे हैं, आप chrome.cookies.set विधि का उपयोग करके ऐसा कर सकते हैं और ऑब्जेक्ट domain विशेषता के माध्यम से इच्छित डोमेन नाम निर्दिष्ट कर सकते हैं जो आप set विधि पर जाते हैं। दस्तावेज यहां है: chrome.cookies.set

+1

स्थानीयहोस्ट क्रॉस साइट अनुमति क्यों देता है? – itchyspacesuit