У меня есть запрос Apollo, который работает правильно в локальном хосте: 3010/graphiql:Apollo Query Работает в GraphIQL, но не в вызове graphql()?
QUERY
query getIMs($fromID: String!, $toID: String!){
instant_message(fromID:$fromID, toID: $toID){
fromID,
toID,
msgText
}
}
ЗАПРОСА ПЕРЕМЕННЫЕ
{
"fromID": "1",
"toID": "2"
}
Вот мой код, чтобы выполнить запрос с помощью обращение к графику():
const GETIMS_QUERY = gql`
query getIMs($fromID: String!, $toID: String!){
instant_message(fromID:$fromID, toID: $toID){
fromID,
toID,
msgText
}
} `;
const CreateIMPageWithDataAndMutations = graphql(GETIMS_QUERY, {
options({ toID, userID }) {
return {
variables: { fromID: `${userID}`, toID: `${toID}`}
};
}
})(CreateIMPageWithMutations);
Вкладка Chrome сети показывает ожидаемый запрос Payload:
operationName:"getIMs" query: "query getIMs($fromID: String!, $toID: String!) {↵ instant_message(fromID: $fromID, toID: $toID) {↵
fromID↵ toID↵ msgText↵ __typename↵ }↵}↵" variables:{fromID: "DsmkoaYPeAumREsqC", toID: "572bddac4ecbbac0ffe37fdd"} fromID:"DsmkoaYPeAumREsqC" toID:"572bddac4ecbbac0ffe37fdd"
Но data
объект возвращается с ApolloError:
"Network error: Unexpected token < in JSON at position 0"
Как я могу это исправить?
Update
Вот снимок экрана вкладки Сеть:
Похоже, вы получаете HTML в качестве ответа с вашего сервера. Убедитесь, что ваш сервер принимает строку JSON ** и ** объект для переменных. graphiql отправляет строку JSON, где Apollo отправляет объект, сервер должен обрабатывать оба сценария. –
Где настройка на сервере Apollo исправить это? – VikR
Если вы используете Apollo Server, он [должен уже] (http://dev.apollodata.com/tools/apollo-server/requests.html) принимает строки и объекты. «Переменные могут быть объектом или строкой, кодированной JSON ». Посмотрите в хром сетевых запросов, каков ответ с сервера? –