Ошибка запроса API (GET) в Javascript

#javascript #fetch-api

#javascript #fetch-api

Вопрос:

Я пытаюсь извлечь данные API из antares (платформа IoT), используя собственный javascript, вот код

 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();  

И вот результат

Изображение результата

Мои вопросы в том, в чем, по-видимому, проблема? в чем разница между выполнением запроса API из собственного javascript и node js? и как я могу решить эту проблему? Или, может быть, есть какие-либо проблемы с этим? Моя цель — только отобразить данные из API на HTML / веб-странице

Спасибо!

Комментарии:

1. Ваш запрос блокируется браузером из-за CORS

2. это может быть как-то связано с cors политикой

3. Я также уже пытаюсь добавить mode: ‘no-cors’, и он помечает запрещенную ошибку (как я упоминал), а не ошибку cors

4. Проблема решена, ребята, это происходит потому, что конечной точкой API является внутренний домен (url: 8443). Следовательно, любой запрос, поступающий от интерфейса, отклоняется политикой CORS