Olá:
Estou apenas começando com apollo-link-rest
com a configuração básica em sua react-apollo
codesandbox .
Em vez de exibir a lista de programas de TV, a interface mostra o seguinte erro: : Network error: Failed to execute 'fetch' on 'Window': Invalid credentials mode
.
Ao replicar esse código em meu próprio ambiente create-react-app
, também peguei o seguinte erro ao executar uma solicitação no 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
}
]
}
Muito obrigado pelo seu trabalho neste link! Isso torna o trabalho com REST muito mais gerenciável, trazendo recursos do tipo GraphQL para aqueles que estão presos às APIs REST.
@sinisterra Quando vemos forward is not a function
em nosso aplicativo, geralmente é porque esquecemos uma diretiva @client
ou @rest(…)
em um dos nós. É esse o seu caso?
Em relação ao seu erro com fetch
- em qual navegador você está testando?
@fbartho Não, estou executando exatamente a mesma consulta do exemplo, a diretiva @rest
está sendo aplicada corretamente. Estou usando o Google Chrome 67.0.3396.62. Quando tentei executar o exemplo no Firefox 60.0.1, também falhou, mas com um erro diferente: Network error: 'credentials' member of RequestInit 'null' is not a valid value for enumeration RequestCredentials.
não se trata apenas do exemplo quebrado! Eu acho que esse problema é muito crítico.
Também estou recebendo o mesmo erro agora, em meu ambiente de produção, que estava funcionando bem nos últimos meses usando apollo-link-rest. Eu acho que isso deve ser devido a uma atualização do navegador.
Estou usando o cromo Version 67.0.3396.79 (Official Build) (64-bit)
O mesmo problema está acontecendo no safari e no firefox .. Eu não entendi totalmente tbh .. a mesma versão do meu aplicativo estava funcionando bem desde 24 de maio.
está acontecendo apenas com as solicitações que faço com apollo-link-rest, embora eu tenha configurado meu customFetch fn, que está funcionando. ¯_ (ツ) _ / ¯
Também estou recebendo o mesmo erro quando removo minha configuração customFetch
.
Na verdade, encontrei o problema.
Estou usando uma função customFetch
, que é chamada por apollo-link-rest
com o parâmetro de opções credentials: null
. Isso está causando este erro em todos os navegadores, incluindo a nova versão do Chrome.
minha solução rápida para minha função de busca personalizada, já que não estou usando credenciais, é a seguinte:
export function fetchWithAuth(url, options = {}) {
// this fixes apollo-link-rest providing credentials: null options
const { credentials, ...opt } = options
return fetch(url, getOptions(opt));
}
Eu também estava batendo minha cabeça contra a parede, recebendo "Erro de rede: Falha ao buscar" impedindo a consulta de até mesmo ser executada com apollo-link-rest. @JuHwon está certo, isso parece estar vinculado à opção de credenciais no construtor RestLink. Embora anteriormente funcionasse como opcional de acordo com a documentação, agora só posso fazê-lo funcionar depois de incluir a opção:
const restLink = new RestLink({
uri: ${process.env.REACT_APP_API_URL}/,
credentials: 'same-origin', // eg. or credentials: 'omit', etc
});
Deve ser corrigido na v0.3.1 - agora disponível!
Comentários muito úteis
Deve ser corrigido na v0.3.1 - agora disponível!