簡體   English   中英

使用 axios 請求 graphql 查詢

[英]Request a graphql query with axios

我正在嘗試使用 axios 向 graphql 查詢發出請求,但失敗了。 這是我的查詢

query {
  workspace(workspaceName: "stackoverflow") {
    name
    company {
      name
    } 
  }
}

和我的代碼塊

  axios({
        url: "https://testurl.com/graphql",
        method: 'post', 
        query: ` query($workspaceName: String!)
           {
              workspace(workspaceName: $workspaceName) {
                 name
                 company {
                   name
                 } 
               }
           }
           `,
        variables: {
           workspaceName: CookieHelper.workspaceName,
        },
        forceResolve: resolve,
     })
        .then(res => {
           resolve(res);
        })
        .catch(err => {
           reject(err);
        });

我這樣設置它是因為 workspaceName 值將以參數方式工作。

Axios 在選項 object 中沒有query屬性。 您嘗試發送到服務器的所有數據都應分配給data屬性。 或者使用axios.post function ,其中第二個參數與axios()上的data相同。

const query = `
query($workspaceName: String!) {
  workspace(workspaceName: $workspaceName) {
    name
    company {
      name
    } 
  }
}`;

const variables = {
  workspaceName: CookieHelper.workspaceName,
};

// Use `data` or..
axios({
  url: "https://testurl.com/graphql",
  data: {
    query,
    variables
  }
}).then(res => {
  resolve(res);
}).catch(err => {
  reject(err);
});

// ..use post where the second parameter is the same as data.
axios.post("https://testurl.com/graphql", {
  query,
  variables
}).then(res => {
  resolve(res);
}).catch(err => {
  reject(err);
});

我不確定forceResolve: resolve做了什么,所以我在示例中省略了它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM