You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Axios发起Supabase GraphQL请求?添加Payload遇404问题

解决Supabase GraphQL接口Axios调用404错误的问题

问题重现

尝试通过Axios调用Supabase GraphQL接口,官方提供的curl示例如下:

curl -X POST https://<PROJECT_REF>.supabase.co/graphql/v1 \
    -H 'apiKey: <API_KEY>' \
    -H 'Content-Type: application/json' \
    --data-raw '
    {
      "query":"{ accountCollection(first: 3) { edges { node { id } } } }"
    }'

自行转换的Axios代码如下,但添加请求Payload后始终返回404错误:

var callObject = {
   url:https://<PROJECT_REF>.supabase.co/graphql/v1,
   method:"POST",
   headers:{
      "Authorization" : "Bearer " + apiKey,
      "apikey": apiKey,
      "Content-Type": "application/json"
   }
}
var response = await axios(callObject)

解决方法

1. 正确添加请求Payload

Axios中对应curl --data-raw的是data字段,需将GraphQL查询对象放在该字段下:

data: {
  query: "{ accountCollection(first: 3) { edges { node { id } } } }"
}

2. 移除多余的Authorization头

Supabase GraphQL接口仅需apikey头即可完成身份验证,curl示例中并未使用Bearer Token,多余的Authorization头可能导致请求异常,建议直接移除。

3. 确认URL变量已替换

务必将<PROJECT_REF>替换为你的Supabase项目实际ID,未替换该变量会直接导致404错误。

修正后的完整代码

// 替换为实际的项目ID和API密钥
const projectRef = "你的PROJECT_REF";
const apiKey = "你的API_KEY";

const callObject = {
  url: `https://${projectRef}.supabase.co/graphql/v1`,
  method: "POST",
  headers: {
    "apikey": apiKey,
    "Content-Type": "application/json"
  },
  data: {
    query: "{ accountCollection(first: 3) { edges { node { id } } } }"
  }
};

try {
  const response = await axios(callObject);
  console.log(response.data);
} catch (error) {
  console.error("请求失败:", error.response?.data || error.message);
}

内容的提问来源于stack exchange,提问作者Myseaj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 03:50:41