Вообщем, мне нужно сделать GET запрос на сторонний сайт, но консоль выдает ошибку. Почитал я информацию поповоду Content Security Policy, но так и ничего не понял. Код запроса if (this.asset.description.marketable == 1) { fetch(`https://prices.csgotrader.app/latest/csmoney.json`) .then((response) => response.json()) .then((response) => { console.log(response); }) } Code if (this.asset.description.marketable == 1) { fetch(`https://prices.csgotrader.app/latest/csmoney.json`) .then((response) => response.json()) .then((response) => { console.log(response); }) } manifest.json "content_security_policy": { "content_security_policy": "script-src '*' object-src '*'" }, Code "content_security_policy": { "content_security_policy": "script-src '*' object-src '*'" }, Ошибка, которую выдает консоль браузера: Refused to connect to 'https://prices.csgotrader.app/latest/csmoney.json' because it violates the following Content Security Policy directive: "connect-src 'self' https://community.akamai.steamstatic.com/ https://store.steampowered.com/ https://checkout.steampowered.com/ wss://community.steam-api.com/websocket/ https://api.steampowered.com/ https://login.steampowered.com/ https://help.steampowered.com/ https://*.valvesoftware.com https://*.steambeta.net https://*.steamcontent.com https://steambroadcast.akamaized.net https://steambroadcast-test.akamaized.net https://broadcast.st.dl.eccdnx.com https://lv.queniujq.cn https://steambroadcastchat.akamaized.net http://127.0.0.1:27060 ws://127.0.0.1:27060". Refused to connect to 'https://prices.csgotrader.app/latest/csmoney.json' because it violates the document's Content Security Policy. Code Refused to connect to 'https://prices.csgotrader.app/latest/csmoney.json' because it violates the following Content Security Policy directive: "connect-src 'self' https://community.akamai.steamstatic.com/ https://store.steampowered.com/ https://checkout.steampowered.com/ wss://community.steam-api.com/websocket/ https://api.steampowered.com/ https://login.steampowered.com/ https://help.steampowered.com/ https://*.valvesoftware.com https://*.steambeta.net https://*.steamcontent.com https://steambroadcast.akamaized.net https://steambroadcast-test.akamaized.net https://broadcast.st.dl.eccdnx.com https://lv.queniujq.cn https://steambroadcastchat.akamaized.net http://127.0.0.1:27060 ws://127.0.0.1:27060". Refused to connect to 'https://prices.csgotrader.app/latest/csmoney.json' because it violates the document's Content Security Policy.
thnDncr1337, ошибка, которую вы видите, связана с политикой безопасности контента (Content Security Policy, CSP). CSP определяет, какой контент может быть загружен на страницу и откуда. В вашем случае, CSP запрещает подключение к внешнему сайту `https://prices.csgotrader.app/latest/csmoney.json`. Чтобы решить эту проблему, вам нужно изменить настройки CSP. В вашем файле `manifest.json` вы указали следующую политику безопасности контента: "content_security_policy": { "content_security_policy": "script-src '*' object-src '*'" } JSON "content_security_policy": { "content_security_policy": "script-src '*' object-src '*'" } Однако, эта политика не позволяет подключаться к внешним сайтам. Чтобы разрешить подключение к `https://prices.csgotrader.app`, вы можете изменить политику на следующую: "content_security_policy": { "content_security_policy": "script-src 'self' https://prices.csgotrader.app; object-src 'self'" } JSON "content_security_policy": { "content_security_policy": "script-src 'self' https://prices.csgotrader.app; object-src 'self'" } Эта политика разрешает подключение только к `https://prices.csgotrader.app` и вашему собственному домену (`'self'`). После внесения изменений в `manifest.json`, попробуйте выполнить запрос снова и проверьте, будет ли ошибка CSP исправлена.
thnDncr1337, если ошибка осталась, это может быть связано с тем, что ваше расширение не обновилось с новыми настройками CSP. Попробуйте выполнить следующие действия: 1. Удалите расширение из браузера. 2. Очистите кэш браузера. 3. Перезагрузите браузер. 4. Установите расширение снова. Если после этого ошибка все еще остается, попробуйте проверить другие возможные причины: 1. Убедитесь, что у вас нет других расширений или настроек браузера, которые могут блокировать подключение к внешнему сайту. 2. Проверьте, что у вас есть доступ к `https://prices.csgotrader.app/latest/csmoney.json` из вашего браузера. Возможно, сайт временно недоступен или заблокирован вашим провайдером. Если ни одно из этих решений не помогло, пожалуйста, предоставьте больше информации о вашем окружении и других настройках, чтобы мы могли более точно определить причину ошибки.
ChatGPT, Access to fetch at 'https://prices.csgotrader.app/latest/csmoney.json' from origin 'https://steamcommunity.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled. GET https://prices.csgotrader.app/latest/csmoney.json net::ERR_FAILED 200 (OK) Code Access to fetch at 'https://prices.csgotrader.app/latest/csmoney.json' from origin 'https://steamcommunity.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled. GET https://prices.csgotrader.app/latest/csmoney.json net::ERR_FAILED 200 (OK)
thnDncr1337, ошибка, которую вы видите, связана с политикой CORS (Cross-Origin Resource Sharing). Эта политика определяет, какие ресурсы могут быть запрошены с другого источника. В данном случае, сервер `https://prices.csgotrader.app` не отправляет заголовок `Access-Control-Allow-Origin`, который разрешает доступ к ресурсу с другого источника. К сожалению, вы не можете изменить настройки CORS на стороне клиента. Вам нужно обратиться к владельцу сервера `https://prices.csgotrader.app` и попросить его добавить заголовок `Access-Control-Allow-Origin` со значением `https://steamcommunity.com`. Это разрешит вашему расширению получать данные с этого сервера. Если вы не можете связаться с владельцем сервера или изменить его настройки, вам могут понадобиться альтернативные способы получения данных. Например, вы можете использовать серверный ******, который будет делать запросы к `https://prices.csgotrader.app` с вашего сервера, а затем ваше расширение будет запрашивать данные с вашего сервера. Надеюсь, это поможет вам решить проблему с CORS. Если у вас возникнут еще вопросы, пожалуйста, дайте мне знать.