Apollo-link-rest: Пример сломанного React-Apollo

Созданный на 7 июн. 2018  ·  6Комментарии  ·  Источник: apollographql/apollo-link-rest

Привет:

Я только начинаю работать с apollo-link-rest с базовой конфигурацией в вашем react-apollo codeandbox .

Вместо отображения списка телешоу интерфейс показывает следующую ошибку: : Network error: Failed to execute 'fetch' on 'Window': Invalid credentials mode .

При репликации этого кода в моей среде create-react-app я также обнаружил следующую ошибку при выполнении запроса в Apollo DevTools:

{
  "errors": [
    {
      "message": "forward is not a function",
      "locations": [
        "TypeError: forward is not a function\n    at RestLink../node_modules/apollo-link-rest/bundle.umd.js.RestLink.request (http://localhost:3000/static/js/bundle.js:21028:20)\n    at http://localhost:3000/static/js/bundle.js:19809:33\n    at ApolloLink.request (http://localhost:3000/static/js/bundle.js:17407:12)\n    at ApolloLink.request 
    }
  ]
}

Большое спасибо за вашу работу по этой ссылке! Это делает работу с REST намного более управляемой, предоставляя GraphQL-подобные функции для тех из нас, кто застрял с REST API.

help wanted 🛠 question❔

Самый полезный комментарий

Должно быть исправлено в v0.3.1 - теперь доступно!

Все 6 Комментарий

@sinisterra Когда мы видим forward is not a function в нашем приложении, это обычно происходит из-за того, что мы забыли директиву @client или @rest(…) на одном из узлов. Это так для вас?

Что касается вашей ошибки с fetch - в каком браузере вы тестируете?

@fbartho Нет, я выполняю точно такой же запрос из примера, директива @rest применяется правильно. Я использую Google Chrome 67.0.3396.62. Когда я попытался запустить пример в Firefox 60.0.1, это тоже не удалось, но с другой ошибкой: Network error: 'credentials' member of RequestInit 'null' is not a valid value for enumeration RequestCredentials.

дело не только в битом примере! Я считаю, что это очень важный вопрос.
Я также получаю ту же ошибку прямо сейчас в своей производственной среде, которая последние несколько месяцев работала нормально с использованием apollo-link-rest. Я думаю, это должно быть из-за обновления браузера?
Я использую хром Version 67.0.3396.79 (Official Build) (64-bit)

Та же проблема происходит в Safari и Firefox .. Я совершенно не понимаю, tbh .. та же версия моего приложения работала нормально с 24 мая.

это происходит только с запросами, которые я делаю с помощью apollo-link-rest, хотя я настроил свой customFetch fn, который работает. ¯_ (ツ) _ / ¯

Я также получаю ту же ошибку, когда удаляю свою конфигурацию customFetch .

Я действительно нашел проблему.
Я использую функцию customFetch , которая вызывается apollo-link-rest с параметром параметров credentials: null . Это вызывает эту ошибку во всех браузерах, включая новую версию Chrome.

мое быстрое исправление для моей пользовательской функции выборки, поскольку я не использую учетные данные, следующее:

export function fetchWithAuth(url, options = {}) {
  // this fixes apollo-link-rest providing credentials: null options
  const { credentials, ...opt } = options
  return fetch(url, getOptions(opt));
}

Я также бился головой о стену, получая сообщение «Ошибка сети: сбой выборки», что мешало даже выполнению запроса с помощью apollo-link-rest. @JuHwon прав, похоже, это связано с параметром учетных данных в конструкторе RestLink. В то время как раньше это работало как необязательное согласно документации, теперь я могу заставить его работать только после включения такой опции:

const restLink = new RestLink({  
  uri: ${process.env.REACT_APP_API_URL}/,  
  credentials: 'same-origin',  // eg. or credentials: 'omit', etc
});

Должно быть исправлено в v0.3.1 - теперь доступно!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги