Доступ к XMLHttpRequest из источника 'null' был заблокирован политикой CORS: - PullRequest
0 голосов
/ 19 декабря 2018

Я запрашиваю данные из базы API Darkky по данным, полученным из API Heremaps, в частности, я пытаюсь получить гео-координаты места и узнать погоду от Darksky.

const getWeather = (longi, latit) => {
return new Promise((resolve, reject) => {
console.log("ia m in hello world");

const wetherHttpRequest = new XMLHttpRequest();

wetherHttpRequest.addEventListener("readystatechange", e => {
  //console.log(e.target);

  if (e.target.readyState === 4 && e.target.status === 200) {
    const data = JSON.parse(e.target.responseText);
    console.log("data resolved");
    resolve(data);
  } else if (e.target.readyState === 4) {
    console.log("data rejected");
    reject("error occured in getting weather");
  }
});

wetherHttpRequest.open(
  "GET",
  `https://api.darksky.net/forecast/8f03e2f020819a37720/${longi},${latit}`
);

wetherHttpRequest.setRequestHeader("Access-Control-Allow-Methods", "GET");
wetherHttpRequest.setRequestHeader("Access-Control-Allow-Headers", "*");

wetherHttpRequest.send();

});
};

здесь два аргумента longiи латит - это обещанное обещание гео-кудинатов

getGeoLoc().then(
a => {
  const datain = a.Response.View[0].Result[0].Location.DisplayPosition;

  console.log(datain.Latitude);
  console.log(datain.Longitude);

  document.getElementById("out1").innerHTML = datain.Longitude;
  document.querySelector(".out2").innerHTML = datain.Latitude;

  getWeather(datain.Longitude, datain.Latitude).then(
    a => {
      console.log(a);
    },
    b => {
      console.log(b);
    }
  );
}

);

я получаю

Access to XMLHttpRequest at 'https://api.darksky.net/forecast/8f03e2f020b9a37720/79.84556,6.93195' from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
...