0

我有一个在笔记本电脑 A 上运行 kairosDB 的虚拟机,该虚拟机有两个 IP:192.168.119.132:从笔记本电脑 A 访问它。192.168.1.151:从笔记本电脑 B 访问。

从两台笔记本电脑上,我都可以毫无问题地从 < IP >:8080 访问 Web 应用程序。

  • 笔记本电脑 A:如果我执行代码中显示的 POST/GET 请求,一切正常。(使用 IP 192.168.119.132)

  • 笔记本电脑 B:只有 GET 请求有效!发布请求返回代码 200,但使用 POST 时不会向数据库添加任何点。

请帮助使 POST 请求工作?

const fetch = require("node-fetch");
let query = {
  "metrics": [{
    "tags": {},
    "name": "matric1",
    "group_by": [{
      "name": "tag",
      "tags": [
        "car_type",
        "host",
        "mode_type"
      ]
    }]
  }],
  "plugins": [],
  "cache_time": 0,
  "start_relative": {
    "value": "20",
    "unit": "seconds"
  }
};
let dataPoint = [{
  "name": "matric1",
  "type": "long",
  "value": 88,
  "timestamp": Math.floor(Date.now()),
  "tags": {
    "car_type": "TEST",
    "host": "TEST",
    "mode_type": "TEST"
  }
}];

function fetchData(query) {
  fetch('http://192.168.1.151:8080/api/v1/datapoints/query?query=' + JSON.stringify(query), {
      method: 'GET'
    })
    .then(res => res.json()) // expecting a json response
    .then(json => console.log(json));
}

function addDataPoint(dataPoint) {
  fetch('http://192.168.1.151:8080/api/v1/datapoints', {
      method: 'POST',
      body: JSON.stringify(dataPoint),
      headers: {
        'Content-Type': 'application/json'
      }
    })
    .then(res => console.log("successfully added !"))
}

addDataPoint(dataPoint);

fetchData(query);
4

1 回答 1

0

您是否检查过您的笔记本电脑是否已同步?您推送当前日期/时间并查询最后 20 秒。

相对日期查询由服务器决定。

因此,如果两台机器之间有 20 多秒的差异,那么您的点可能不在查询时间范围内。

于 2019-04-01T14:36:26.440 回答