Выпуск PetFinder API CORS - PullRequest
       7

Выпуск PetFinder API CORS

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

Я использую API PetFinder (https://www.petfinder.com/developers/api-docs), чтобы получить несколько фотографий собак. Их API довольно прост. Моя проблема - CORS. У меня есть расширение Chrome, которое говорит Chrome не беспокоить, чтобы я мог просматривать свои работать локально, но мне бы хотелось, чтобы я мог добавить это на страницы GitHub или поделиться им с кем-то еще, и они могли бы просто клонировать его и запустить.

Я создал приложение, используя create-react-app. В основном это запрос на получение. Я могу сделать это с помощью простого JSON или добавить &callback=?, чтобы получить их JSONP. Я немного покопался о включении второго аргумента с информацией, чтобы обойти CORS, но я не могу придерживаться лендинга. Если на стороне сервера нет правильных заголовков, я застрял с потенциально непрозрачным ответом? Есть ли лучший способ сделать это с JSONP? Может кто-нибудь сказать мне мои варианты?

componentDidMount() {
  fetch('http://api.petfinder.com/pet.find?key=superSecretKeyForMeToKnow&animal=dog&location=94103&output=full&format=json')
  .then(response => response.json())
  .then(petFinderJson => this.setState({ dogs: petFinderJson.petfinder.pets.pet }));
}

1 Ответ

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

Барух был прав. Мне нужен прокси.

Мне просто нужно было добавить "proxy": "http://api.petfinder.com" к package.json и затем изменить запрос на выборку, чтобы исключить эту строку. поэтому www.google.com/search станет /search в запросе на выборку!

Сделал трюк! Woo!

...