使用$ http.post的Graphql查询不起作用

时间:2017-11-20 20:02:47

标签: javascript angularjs node.js http graphql

以下代码的请求一切正常,但我没有收到任何数据(只是在chrome中请求的“预览”选项卡中说“找不到错误”)。我在GraphiQL中尝试相同的查询,并返回相关数据。我不确定我在这里缺少什么。请指教,有点坚持这个。

PlayService.prototype.getPlays = function(playID) {
 //The query. 
 const playsQuery = `query ($playid: String) {
    plays(id: $playid) {
      id
      items {
        nodes {
          id
          name
        }
      }
    }
  }`;

  // variables to pass.
  const variables = {
    playid: playID
  };

  //The request.
  const result = $http.post(
    /graphql,
    {
      method: 'POST',
      credentials: 'same-origin',
      headers: {
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({ playsQuery, variables })
    }
  );
  return result && result.data;
};

1 个答案:

答案 0 :(得分:0)

您似乎将数据正文发送为:

{
  playsQuery: "<query string>",
  variables: {}
}

GraphQL规范指定您必须遵循以下格式通过REST进行GraphQL查询:

http://graphql.org/learn/serving-over-http/

{
  "query": "...",
  "operationName": "...",
  "variables": { "myVariable": "someValue", ... }
}