Axios и Fetch приводят к ошибке CORS, но Postman - нет - PullRequest
0 голосов
/ 02 января 2019

Если я сделаю 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.

Но если я сделаю тот же запрос с помощью Почтальона, я смогу увидеть результаты просто отлично. Как это исправить?

1 Ответ

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

Это не проблема почтальона против 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>
...