API Youtube, нет "Access-Control-Allow-Origin" в Firefox

Я разрабатываю веб-расширение, доступное для Chrome и Firefox. Это расширение использует метод javascript fetch для извлечения данных из 2 API, Youtube API и Twitch API. Когда я запускаю запрос, я увидел разные заголовки ответа в Chrome по сравнению с Firefox. Однако эта разница сломала мое расширение в Firefox. Мне нужен «Access-Control-Allow-Origin» в заголовках ответов, и он у меня есть только в Chrome, а не в Firefox, я не понимаю, почему!

В документация они говорят, что им нужно поле «Origin» в запросе заголовка, чтобы предоставить в ответ «Access-Control-Allow-Origin». У меня правильный заголовок, но неправильный ответ.

Это мой код для метода выборки:

/**
 * Obtientla promesse de donnée Youtube
 * 
 * @method _getYoutubeDatasPromise
 * @returns {Promise}
 * @private
 */
_getYoutubeDatasPromise() {

    const headers = new Headers();

    return fetch(
        `https://www.googleapis.com/youtube/v3/search?key=${YT_key}&channelId=${YT_UserId}&part=snippet,id&order=date&maxResults=2`,
        {
            method: 'GET',
            mode: 'cors',
            headers: headers
        }
    )
};

Это заголовки запроса / ответа:

Хром | Fire Fox

И это журнал ошибок в консоли Firefox:

Ошибка

Спасибо за вашу помощь ! :)

Обновлено: manifest.json:

{
"name": "HuzLive",
"version": "0.1",
"description": "Soyez toujours au courant des lives & vidéos de votre streameur Dofus préféré",
"permissions": ["activeTab", "notifications", "storage"],
"background": {
    "page": "background.html"
},
"browser_action": {
    "default_popup": "popup.html",
    "default_icon": {
        "16": "images/huz_logo16.png",
        "32": "images/huz_logo32.png",
        "48": "images/huz_logo48.png",
        "128": "images/huz_logo128.png"
    }
},
"icons": {
    "16": "images/huz_logo16.png",
    "32": "images/huz_logo32.png",
    "48": "images/huz_logo48.png",
    "128": "images/huz_logo128.png"
},
"applications": {
    "gecko": {
      "id": "{b8e90417-1550-474f-bd6e-de91b8382298}",
      "strict_min_version": "42.0"
    }
  },
"manifest_version": 2

}

Я считаю, что вам нужно добавить разрешение в manifest.json вашего расширения - пожалуйста, включите manifest.json вашего веб-расширения firefox в вопрос - или прочтите этот документация - вам никогда не нужны заголовки CORS в расширении

Jaromanda X 02.09.2018 03:13
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
417
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

I believe you'll need to add a permission in the manifest.json of your extension - please include the manifest.json of your firefox web extension in the question - or read this documentation - you should never need CORS headers in an extension – Jaromanda X

Я нашел ответ! Я забыл указать домены api в разрешении моего manifest.json!

я просто добавляю:

"permissions": ["https://api.twitch.tv/*", "https://www.googleapis.com/*", "activeTab", "notifications", "storage"]

Большое спасибо !!

Другие вопросы по теме