2012-06-18 11 views
6

Próbuję wysłać żądanie XHR z rozszerzenia Google Chrome do innej domeny. To działałoby dobrze, ale muszę wysłać te pliki cookie z domeną z żądaniem. Jakikolwiek sposób to zrobić?Wysyłaj żądanie XHR z rozszerzenia Chrome przy użyciu plików cookie.

+0

Możesz użyć interfejsu API '' webRequest'] (http://code.google.com/chrome/extensions/webRequest.html#event-onBeforeSendHeaders), aby zmodyfikować nagłówki, w tym 'Cookie'. Przykład fałszowania UA + edycja nagłówka można znaleźć [tutaj] (http://stackoverflow.com/a/10339902/938089?assionate-a-ustom-user-agent-to-a-specific-google-chrome-page -patka). –

+0

Dlaczego wydaje Ci się, że Chrome nie wysyła plików cookie użytkownika? Właśnie to przetestowałem i tak jest. Czy strona zawiera twoje uprawnienia? –

+0

Huh. Mój błąd. Zdecydowanie nie wysyła plików cookie z prośbą. – nathancahill

Odpowiedz

5

Upewnij się manifest.jsonuprawnieniasetup prawidłowo.

Musisz poprawnie ustawić uprawnienia do żądania domeny krzyżowej w manifest.json swojego rozszerzenia chrome. Po prawidłowym skonfigurowaniu plików cookie, które są już ustawione dla docelowej domeny, zostaną wysłane wraz z żądaniem, które wprowadzasz w tej domenie. manifest.json documentation

Musisz zachować szczególną ostrożność podczas gry z localhost:port_number. Aby to zadziałało, musisz najpierw podać tę domenę w manifest.json. Skończyłem z niezręcznymi zachowaniami, gdy moja domena localhost nie została określona w całości.

ten sposób chcesz określić domenę localhost w manifest.json swojego rozszerzenia (jeśli to ma sens):

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

Jeśli ciasteczka, które chcesz wysłać do docelowej domeny nie są jeszcze ustalone, możesz to zrobić za pomocą metody chrome.cookies.set i podać żądaną nazwę domeny za pomocą atrybutu obiektu domain, którą przekazujesz do metody set. Dokumentacja jest tutaj: chrome.cookies.set.

+1

Dlaczego localhost przyznaje uprawnienia dla wielu witryn? – itchyspacesuit

Powiązane problemy