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

时间:2015-12-02 12:48:21

标签: api http cross-domain grafana

是否可以将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方法,dev工具显示服务器发回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  │
└──────────┘           └───────────┘           └───────────┘

1 个答案:

答案 0 :(得分:1)

根据these links,目前目前无法在Grafana中直接在服务器中设置CORS标头,因此您需要将Grafana服务器置于反向代理如nginx并在那里添加标题。

请参阅Mozilla Developer documentation about CORS以了解您所面临的问题。