Я делаю расширение chrome с пользовательским всплывающим окном, которое появляется после загрузки страницы. Я хотел бы сохранить отправленные ответы из поля ввода в моей базе данных Firebase, чтобы я не мог включить их в другой веб-сайт. Это все работает, но проблема в том, что ответы от расширения блокируются:
Блокировка перекрестного чтения (CORB) блокирует ответ перекрестного происхождения с текстом MIME типа text / plain. Подробнее см.
Как я могу решить эту проблему?
Примечание: я не профессионал в этом, поэтому я очень признателен за простое решение :)
это мои шаги:
Я скачал базу данных о огнях. js и добавил ее в свой манифест. json:
"matches": ["<all_urls>"],
"js": [ "Libraries/firebase-app.js",
"Libraries/firebase-firestore.js",
"sketch.js"],
Я сделал инъекцию html к веб-странице, используя скрипт-контент:
<div id="bg-modal">
<div class="modal-content">
<button class="close">+</button>
<div class="text"></div>
<form class="antwortfeld antwortfeld1" action="">
<textarea type="text" name="antwort" placeholder="Antworten"></textarea>
<button class="Senden">Senden</button>
</form>
Я добавил конфигурацию приложения firebase и инициализировал firebase в скрипте контента
// Your web app's Firebase configuration
var firebaseConfig = {
apiKey: "...TRZeHhLQ9gMa4V4gy9WSlQ",
authDomain: "....firebaseapp.com",
databaseURL: "https://....firebaseio.com",
projectId: "....",
storageBucket: "....appspot.com",
messagingSenderId: "...0021",
appId: "1:385077100021:.....ba5a776b4bc"
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
const db = firebase.firestore();
, затем добавил также контент-скрипт для сохранения входных данных в firebase:
const form1 = document.querySelector('.antwortfeld1');
// saving data
form1.addEventListener('submit', (e) => {
e.preventDefault();
db.collection('Antworten').add({
Antwort1: form1.antwort.value,
})
form1.antwort.value = ' ';
})
Как я уже сказал, все работает, но я заблокирован. Я думаю, мне придется использовать background-script, чтобы обойти это? Как это будет выглядеть? Есть еще варианты?