Ошибка сети: неожиданный токен <in JSON в позиции 0 - PullRequest
0 голосов
/ 05 января 2020

Я применяю все решения в inte rnet об этой ошибке, но все же у меня есть эта проблема

Я не знаю, в чем проблема !!

1 - я проверил ссылка. 2- Я проверил запрос.

(я использую React-Apollo-GraphQL).

    const authLink = setContext((_, { headers }) => {
      const token = localStorage.getItem("authToken") || "";
      return {
        headers: {
            ...headers,
          Authorization: token ? `JWT ${token}` : ""
        }
      };
    });


    const httpLink = new createHttpLink({
      uri: 'http://localhost:8000/graphql/',
      fetchOptions: {
        credentials: "include"
      },
    });

    const wsLink = () => {
      const token = localStorage.getItem("authToken");
      return new WebSocketLink({
        uri: `ws://localhost:8000/graphql/`,
        options: {
          reconnect: true,
          timeout: 30000,
          connectionParams: {
            Authorization: `JWT ${token}`,
            authToken: token
          }
        }
      });
    };

    const link = split(
      ({ query }) => {
        const { kind, operation } = getMainDefinition(query);
        return kind === 'OperationDefinition' && operation === 'subscription';
      },
      wsLink(),
      authLink.concat(httpLink),
      )


    const client = new ApolloClient({
      link,
      cache: new InMemoryCache(),
      clientState: {
        defaults: {
          isLoggedIn: !!localStorage.getItem("authToken")
        }
      },
    })

Можете ли вы помочь мне, пожалуйста

Спасибо.


** Примечание. Когда я использую этот код (ниже), он работает успешно.

const client = new ApolloClient({
  uri: "http://localhost:8000/graphql/",
  fetchOptions: {
    credentials: "include"
  },
  request: operation => {
    const token = localStorage.getItem("authToken") || "";
    operation.setContext({
      headers: {
        Authorization: `JWT ${token}`
      }
    });
  },
  clientState: {
    defaults: {
      isLoggedIn: !!localStorage.getItem("authToken")
    }
  },
});

1 Ответ

0 голосов
/ 06 января 2020

apollo-boost не поддерживает настройку параметров link или cache для своего клиента. Эти являются единственными поддерживаемыми параметрами конфигурации. Если вы передаете какой-то другой параметр, вы должны увидеть предупреждение об этом на консоли.

Если вам нужно настроить экземпляр ApolloClient, вам нужно перейти на использование полного клиента .

...