如何在客户端 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 以了解您面临的问题。
是否可以将 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 以了解您面临的问题。