是否可以将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 │
└──────────┘ └───────────┘ └───────────┘
答案 0 :(得分:1)
根据these links,目前目前无法在Grafana中直接在服务器中设置CORS标头,因此您需要将Grafana服务器置于反向代理如nginx并在那里添加标题。
请参阅Mozilla Developer documentation about CORS以了解您所面临的问题。