Ошибка 400 для вызова API в реагирующем редуксе работает нормально в примере - PullRequest
0 голосов
/ 11 сентября 2018

https://stackblitz.com/edit/react-redux-realworld-4ldsnt?file=components/ChannelsField.js

export function fetchPosts(channel) {
  return function (dispatch) {
    dispatch(requestPosts());
    return fetch(`https://newsapi.org/v1/articles? 
      source=${channel}&apiKey=${MY_API_KEY}`)
      .then(
      response => response.json(),
      error => console.log('An error occurred.', error),
    )
      .then((json) => {
        dispatch(receivedPosts(json));
      },
    );
  };
}

1 Ответ

0 голосов
/ 12 сентября 2018

Похоже, ваш запрос имеет дополнительные пробелы (% 20) между?и источник, который вызывает 400 неправильных запросов.Измените свою функцию на следующую, и она должна работать:

export function fetchPosts(channel) {
   return function (dispatch) {
      dispatch(requestPosts());
      return fetch(`https://newsapi.org/v1/articles?source=${channel}&apiKey=${MY_API_KEY}`)
         .then(response => response.json(),
            error => console.log('An error occurred.', error),
         )
         .then((json) => {
            dispatch(receivedPosts(json));
         },);
   };
}

Вот тот же самый запрос GET без пробелов:

https://newsapi.org/v1/articles?source=bbc-news&apiKey=c39a26d9c12f48dba2a5c00e35684ecc
...