Привет:
Я только начинаю работать с 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.
@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 - теперь доступно!
Самый полезный комментарий
Должно быть исправлено в v0.3.1 - теперь доступно!