首页 > 解决方案 > (GET) API 请求在 Javascript 中失败

问题描述

我正在尝试使用本机 javascript 从 antares(物联网平台)获取 API 数据,这是代码

var url = 'https://platform.antares.id:8443/~/antares-cse/antares-id/SuhuPagarsih/Temperature/la';
var opt = {
    method: 'GET',
    mode: 'no-cors',
    headers: {
        'X-M2M-Origin': 'bdc2996719c6ac07:8cbb60e9c5997e74',
        'Content-Type': 'application/json;ty=4',
        'Accept':'application/json',
    },
}

fetch(url, opt)
  .then(function(data) {
    console.log(data)
  })
  .catch(function(err) {
    console.error(err)
  })

这是结果

结果图像

如您所见,它失败了。大多数时候我看到错误原因是被禁止的。但是当我尝试使用 node js 和 postman 的代码片段时。我得到了一个很好的结果(200 OK)如果你需要比较这是代码(我想都是一样的)

var http = require("https");

var options = {
  "method": "GET",
  "hostname": "platform.antares.id",
  "port": "8443",
  "path": "/~/antares-cse/antares-id/SuhuPagarsih/Temperature/la",
  "headers": {
    "x-m2m-origin": "bdc2996719c6ac07:8cbb60e9c5997e74",
    "content-type": "application/json;ty=3",
    "cache-control": "no-cache",
    "postman-token": "ff6cbe83-97ac-6ed5-aaec-e2bafaf44002"
  }
};

var req = http.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function () {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});

req.end();

这是结果

结果图像

我的问题是,似乎有什么问题?从本机 javascript 和节点 js 发出 API 请求有什么区别?我该如何解决这个问题?或者也许有这个问题?我的目标只是显示从 API 到 HTML/网页的数据

谢谢!

标签: javascriptfetch-api

解决方案


推荐阅读