Отправить запрос на сервер Graphql не отвечает - PullRequest
0 голосов
/ 26 февраля 2019

Я пытаюсь сделать POST-запрос к моему серверу graphql, работающему на localhost: 4000.Чтобы получить своих пользователей, я использовал

getUsers(){
    var query = `{users(id:""){username}}`
   fetch('http://localhost:4000/graphql', {
     method:'POST',
     headers: {
       'Content-Type' :'application/json',
       'Accept': 'application/json',
     },
     body: JSON.stringify({
       query,
     })
   })
   .then(res => res.json())
   .then(res => console.log('data returned', res))

, это не сработало, поэтому я сделал запрос керли, чтобы увидеть, что не так,

curl -X POST http://localhost:4000/graphql -H "Content-Type: application/json "-d "{"query": "{users(id:""){username}}"

После того, как я запустил это, я продолжал получать,

Unexpected token q in JSON at position 

После поиска этой проблемы в Google сначала я нашел учебник, который, как мне показалось, мог бы помочь.После обучения я изменил свой код на

  getUsers(){
    var query = `{users(id:""){username}}`
   fetch('http://localhost:4000/graphql', {
     method:'POST',
     headers: {
       'Content-Type' :'application/json',
       'Accept': 'application/json',
     },
     body: JSON.stringify({
       query,
     })
   })
   //.then(r => r.json())
   .then(res => res.text())
   .then(text => console.log('data returned', text))

, который все еще ничего не записывал.Итак, я запустил последний завиток, чтобы попытаться решить эту проблему

curl -X POST http://localhost:4000/graph0ql -d "{"query": "{users(id:""){username}}"

, который продолжал возвращаться

{"errors":[{"message":"Must provide query string."}]}

Теперь я застрял и не знаю, что попробовать дальше.Я проверил строку запроса, и она дает мне ожидаемый ответ в graphiql, а также правильный URL-адрес.Мой сервер углового интерфейса (с которого я делаю этот запрос) работает на localhost: 4200

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Хорошо, я чувствую себя довольно глупо.Я неправильно вызвал свою функцию.Работает только то, что на самом деле используется данные

0 голосов
/ 26 февраля 2019

Проблема в том, как вы передаете объект запроса.Попробуйте обновить его примерно так:

getUsers(){
  var query = `query getUsers { users(id:"") { username } }`
  fetch('http://localhost:4000/graphql', {
    method:'POST',
    headers: {
      'Content-Type' :'application/json',
      'Accept': 'application/json',
    },
    body: JSON.stringify({
      query: query,
    })
  })
  //.then(r => r.json())
  .then(res => res.text())
  .then(text => console.log('data returned', text))
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...