Jak wykonać zapytanie do innej strony w ajax?

0

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?

0

Bez proxy bezpośrednio z przeglądarki nie da rady, w odpowiedzi przychodzi nagłówek cors który jedynie pozwala odebrać wynik w ramach strony: Access-Control-Allow-Origin: powietrze.gios.gov.pl

Napisz im maila że mają źle CORS ustawionego skoro to ma być publiczne api dostępne dla wszystkich.

0

Ustaw crossDomain na false.

0

@Haskell niestety nie pomogło.
@neves dzięki za odpowiedź.

Nie znalazłem innego rozwiązania, temat do zamknięcia.

0

A czy próbowałeś, jak sugerował @neves, skontaktować się z administratorem serwera i wyjaśnić z nim tą kwestię?

1 użytkowników online, w tym zalogowanych: 0, gości: 1