Изменить заголовки Графаны (Access-Control-Allow-Origin)

Я пытаюсь отобразить панель Grafana на простой странице PHP. Я следовал инструкциям на сайте для аутентификации с помощью oauth. Вот мой код:

<?php
$ch = curl_init();
$authorization = "Authorization: Bearer <myToken>";
curl_setopt_array(
$ch, array(
CURLOPT_URL => 'url-to-my-dashboard',
CURLOPT_HTTPHEADER => array('Content-Type: application/json' , $authorization),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPAUTH => "HTTP/1.1"));

$output = curl_exec($ch);
?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<?php echo $output; ?>
</body>
</html>

Страница загружается, я получаю CSS … но я получаю ошибку 404. Я обнаружил, что заголовки Графаны не допускают такого рода действий:

Access to Font at 'http://xxxxx' from origin 'http://localhost'
has been blocked by CORS policy:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://localhost' is therefore not allowed access.

Я совершенно уверен, что мне нужно настроить эти заголовки:

Header set Access-Control-Allow-Origin "xxx"Header set Access-Control-Allow-Methods "GET, OPTIONS"Header set Access-Control-Allow-Headers "origin, authorization, accept"

Проблема в том, что я не знаю, где я это сделаю. Я искал файл .htaccess для Grafana (или Graphite, который мы используем с ним). Я также попытался изменить файл конфигурации Apache2 (/ etc / apache2 / apache2 / conf); после перезагрузки ничего не меняется …

Я застрял Может кто-нибудь мне помочь?

0

Решение

Именно браузер блокирует запросы, а не Grafana из-за запросов, нарушающих Политика единого происхождения. Для localhost два сайта, работающие на разных портах, считаются двумя разными доменами.

Вам нужно будет установить сервер Grafana за обратным прокси-сервером, чтобы разрешить совместное использование ресурсов Cross Origin (CORS).

Существует проблема, описывающая это со ссылкой на документы.

Извлечение из документации (ссылка выше), описывающей конфигурацию Apache:

Для Apache 2.x:

Header set Access-Control-Allow-Origin "*"Header set Access-Control-Allow-Methods "GET, OPTIONS"Header set Access-Control-Allow-Headers "origin, authorization, accept"

Обратите внимание, что с помощью ««оставляет ваш экземпляр графита достаточно открытым, чтобы вы
может захотеть использоватьhttp://my.grafana.com» на месте «
«

Если ваш веб-сайт Graphite защищен обычной аутентификацией, вы должны
включить опцию HTTP глагол. Обратите внимание, что при использовании базовой аутентификации
Access-Control-Allow-Origin не должен быть установлен в подстановочный знак, также
должен быть указан заголовок Access-Control-Allow-Credentials. Это выглядит
как следующее для Apache:

Header set Access-Control-Allow-Origin    "http://mygrafana.com:5656"Header set Access-Control-Allow-Methods   "GET, OPTIONS"Header set Access-Control-Allow-Headers   "origin, authorization, accept"Header set Access-Control-Allow-Credentials true

<Location />
AuthName "graphs restricted"AuthType Basic
AuthUserFile /etc/apache2/htpasswd
<LimitExcept OPTIONS>
require valid-user
</LimitExcept>
</Location>

И вот проблема, которая описывает конфигурацию для создания обратного прокси-сервера для Grafana с Apache:

https://github.com/grafana/grafana/issues/4136

Если эти ссылки не помогают, есть много закрытых вопросов об этом в репо Grafana. Вот поиск для cors и apache:

https://github.com/grafana/grafana/issues?utf8=%E2%9C%93&д = составляет% 3Aissue% 20is% 3Aclosed% 20cors% 20apache

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector