如何在客户端 javascript 中使用 Grafana Http API

How to use Grafana Http API with client-side javascript

是否可以将 Grafana Http API 与客户端 javascript 一起使用? 我从获取已创建仪表板的 json 的最基本内容开始。

function getHome2Dashboard(callback) {
  $.ajax({
      type: 'GET',
      url:  'http://localhost:3000/api/dashboards/db/home-2',
      crossDomain: true,
      dataType: 'json',
      headers: {
      "Authorization": "Bearer eyJrIjoiYkdURk91VkNQSTF3OVdBWmczYUNoYThPOGs0QTJWZVkiLCJuIjoidGVzdDEiLCJpZCI6MX0="
  },
  success: function(data)
  {     
      if( callback ) callback(data);
  },
  error: function(err)
  {
    console.log(err);
  }
}); 

但我得到一个:

No 'Access-Control-Allow-Origin' header is present on the requested resource.

我也尝试使用 jsonp 方法,开发工具显示服务器发回 json 数据但 js 失败,因为(我认为)结果没有包含在回调函数中。欢迎就如何实施提出任何建议...

// At the moment I think of something like:

┌──────────┐           ┌───────────┐
│  Browser │ <-------> │  Grafana  │
└──────────┘           └───────────┘

// In order to overcome the cross-origin problems,
// should I go towards something like this?:

┌──────────┐           ┌───────────┐           ┌───────────┐
│  Browser │ <-------> │  Web api  │ <-------> │  Grafana  │
└──────────┘           └───────────┘           └───────────┘

根据these links,Grafana 当前 无法直接在服务器中设置 CORS headers,因此您需要将 Grafana服务器在像 nginx 这样的反向代理后面,并在那里添加 headers。

查看 Mozilla Developer documentation about CORS 以了解您面临的问题。