Witam, próbuje odpytać się oficjalnego API Głównego Inspektoratu Ochrony Środowiska, niestety mam problemy z zasadami Cross-Origin.
Odpytuje się za pomocą ajaxa:
var settings = {
"crossDomain": true,
"url": "http://api.gios.gov.pl/pjp-api/rest/data/getData/2752",
"method": "GET",
"headers": {
"Content-Type": "application/json"
}
}
$.ajax(settings).done(function (response) {
console.log(response);
});
Niestety w odpowiedzi otrzymuje komunikat:
Zablokowano żądanie do zasobu innego pochodzenia: zasady „Same Origin Policy” nie pozwalają wczytywać zdalnych zasobów z „http://api.gios.gov.pl/pjp-api/rest/data/getData/2752” (nagłówek CORS „Access-Control-Allow-Origin” nie pasuje do „powietrze.gios.gov.pl”).
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://api.gios.gov.pl/pjp-api/rest/data/getData/2752. (Reason: CORS header ‘Access-Control-Allow-Origin’ does not match ‘powietrze.gios.gov.pl’).
Po dodaniu do ajaxa: dataType: "jsonp", odpowiedź serwera w formie obiektu JSON jest widoczna w konsoli przeglądarki ale za to otrzymuje błąd:
Skrypt z adresu „http://api.gios.gov.pl/pjp-api/rest/data/getData/2752?callback=jQuery211012447381014774073_1560443099074&_=1560443099075” został wczytany pomimo tego, że jego typ MIME („application/json”) nie jest prawidłowym typem MIME dla JavaScriptu.
SyntaxError: unexpected token: ':'
The script from “http://api.gios.gov.pl/pjp-api/rest/data/getData/2752?callback=jQuery21109284012965697201_1560443307303&_=1560443307304” was loaded even though its MIME type (“application/json”) is not a valid JavaScript MIME type.
SyntaxError: unexpected token: ':'
Zmiana ContentType na: "Content-Type": "application/javascript" nic nie zmienia, ten sam komunikat 1:1.
Dodanie do headersów: "Access-Control-Allow-Origin":"*" nic nie zmienia, ten sam komunikat 1:1.
Nie chce używać nodejs, PHP czy innych rozwiązań. Używam: Firefox 67.0.2 (64 bity).
Czy jest możliwość odpytania się tego API za pomocą JS, jQuery?