Как получить JSONP, используя fetch? - PullRequest
0 голосов
/ 02 января 2019

Я не могу загрузить данные из этой общедоступной конечной точки:

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: Response to preflight request doesn't pass access control check: 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.

Как это сделать?

1 Ответ

0 голосов
/ 02 января 2019

Jsonp не работает таким образом, так как он разработан для работы с той же политикой происхождения. Если flickr API поддерживает CORS, вы можете использовать это с fetch, но если вы хотите использовать jsonp, вам нужно добавить тег script и обратный вызов. Дальнейшее чтение: https://en.wikipedia.org/wiki/JSONP

Пример:

<script type="application/javascript">
window.jsonFlickrFeed = function(response) {
  alert(response);
};
</script>
<script type="application/javascript" src="http://api.flickr.com/services/feeds/photos_public.gne?format=json">
</script>
...