Если я сделаю ajax-запрос, используя Axios или Fetch к этой общедоступной конечной точке:
http://api.flickr.com/services/feeds/photos_public.gne?format=json
Я получаю следующую ошибку:
Access to fetch at 'http://api.flickr.com/services/feeds/photos_public.gne?format=json' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
Но если я сделаю тот же запрос с помощью Почтальона, я смогу увидеть результаты просто отлично. Как это исправить?
Это не проблема почтальона против axios или fetch.Проблема в том, что сервер возвращает jsonp, а не json.Ни Axios, ни Fetch не поддерживают jsonp.
Почему бы здесь не использовать ajax?
$(document).ready(function() { $.ajax({ url: 'http://api.flickr.com/services/feeds/photos_public.gne?format=json', dataType: 'jsonp', jsonpCallback: 'jsonFlickrFeed' }); window.jsonFlickrFeed = function(response) { console.log(response) } });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>