Я пытаюсь создать расширение Chrome, которое извлекает некоторые данные из запросов на вытягивание на Github с помощью Fetch API, а затем отображает их в другом месте. У меня возникают некоторые проблемы, когда я пытаюсь использовать это с закрытым репозиторием на Github. Я считаю, что это связано с защитой CSRF и правилами, регулирующими расширения Chrome, имеющие доступ к файлам cookie сеанса.
В моем расширении manifest.json
есть следующее:
"content_scripts": [{
"matches": [
"*://github.com/*/*/pulls"
],
"js": ["script/underscore-1.8.3.min.js", "script/content.js"]
}],
"permissions": [
"tabs",
"activeTab",
"*://github.com/*",
"webNavigation"
]
Но когда я запускаю следующее из своего script/content.js
:
fetch('/redacted/redacted/pull/4549', {credentials: 'same-origin'}).then((response) => {
return response.text();
}).then((text) => {
// do cool stuff
})
Это приводит к ответу 404 от Github. Проверяя этот запрос на вкладке сети Chrome Inspector, я вижу, что он не отправляет заголовок сеанса GitHub вместе с запросом.
Если я сделаю тот же самый запрос, используя подсказку Javascript в Инспекторе, я увижу ответ 200 и увижу, что он отправляет файлы cookie моего сеанса.
Насколько я понимаю, указание домена Github в моем manifest.json
будет означать, что мое расширение будет иметь доступ к данным моего сеанса в моих сценариях содержимого, разве это не правильно? Что я должен сделать, чтобы сделать действительный запрос на этот защищенный контент?
credentials: 'same-origin'
, в то время как XHR просто отправляет все, что мне кажется ошибкой. - person Daiwei   schedule 20.05.2016