@AnatolyBossman

Ошибка при запросе, как решить?

Добрый вечер, при get запросе на определенную страницу в браузере выдается ошибка
Refused to connect to 'https://www.supremenewyork.com/mobile_stock.json' because it violates the following Content Security Policy directive: "default-src 'self'". Note that 'connect-src' was not explicitly set, so 'default-src' is used as a fallback.

Как оно решается? Сижу на локальном хосте
  • Вопрос задан
  • 152 просмотра
Пригласить эксперта
Ответы на вопрос 2
zkrvndm
@zkrvndm
Архитектор решений
Проксируйте запрос через свой сервер. В корне своего сайта создайте файл proxy.php с таким содержимым:
<?php

header('Access-Control-Allow-Origin: *'); // Разрешаем запросы с любых доменов
header('Content-Type: application/json; charset=utf-8'); // Указываем тип документа и кодировку

// Скачиваем данные по ссылке:
$json = file_get_contents('https://www.supremenewyork.com/mobile_stock.json');
echo $json; // Выводим данные

Далее, уже в браузере обращайтесь по адресу http://localhost/proxy.php если нужно получить JSON.
Ответ написан
Комментировать
@granty
Вы посылаете HTTP-заголовок Content-Security-Policy: default-src 'self' или выводите в HTML-коде метатег
<meta http-equiv="Content-Security-Policy" content="default-src 'self'">
Поэтому CSP(Content Security Policy) разрешает вставку на страницу ресурсов (картинок/скриптов/стилей/шрифтов/аякс-запросов/видео/аудио) только с собственного домена сайта (localhost в вашем случае). Контролем этого и занимается CSP.

Если вы не знаете что такое CSP - найдите и уберите это заголовок/метатег. Если знаете и "оно вам нужно" - добавьте в директиву default-src источник https://www.supremenewyork.com:
default-src 'self' https://www.supremenewyork.com;

А если делать по-уму, то ваша CSP должна выглядеть так:
default-src 'self'; connect-src https://www.supremenewyork.com;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы