【发布时间】:2018-01-31 20:30:29
【问题描述】:
我在 Docker 容器(来自 Docker 存储库的grafana/grafana 映像)中设置了 Grafana,端口 3000 转发到我的本地主机。下面是我的docker-compose.yml:
version: '2.1'
services:
grafana:
image: grafana/grafana
ports:
- 3000:3000
最初我也有指向 Graphite 的链接以及一些卷和环境配置(仅限GF_SECURITY_ADMIN_PASSWORD),但我想这并不重要。
我可以通过简单的curl 电话得到 Grafana 的回复:
$ curl http://localhost:3000
<a href="/login">Found</a>.
但是当我试图通过 AJAX 调用获取它时,它给了我一个奇怪的结果:
$.ajax({url: 'http://localhost:3000', beforeSend: function(xhr, settings) {alert('before setting header'); xhr.setRequestHeader('Access-Control-Allow-Origin', '*'); alert('after setting header');}});
[many JSON fields]
responseText:""
[many JSON fields]
statusText: "error"
[many JSON fields]
Alerts 表示标头设置为接受来自任何来源的请求。
当我直接调用 Docker 容器地址时,也会发生同样的情况(curl 有效,但 ajax 无效)。
在后台发生了什么?为什么第二个请求不起作用?如何通过 AJAX 调用从 Grafana 获得响应?
【问题讨论】:
标签: jquery ajax docker docker-compose grafana