Sanity.io数据获取报错401:Session not found问题求助
解决Sanity Fetch请求401 "Session not found"错误
你的代码尝试从Sanity获取abouts类型的数据,但返回401未授权错误,提示会话未找到,以下是具体排查步骤:
1. 检查Sanity客户端初始化配置
确保客户端核心参数配置正确,尤其是访问权限相关设置:
import { createClient } from '@sanity/client'; const client = createClient({ projectId: '你的项目ID', // 必须与Sanity项目ID一致 dataset: 'production', // 匹配目标数据集 apiVersion: '2022-09-06', // 和请求URL中的版本保持一致 useCdn: true, // 公开内容建议启用CDN加速 // 若访问私有内容,需添加带读取权限的Token: // token: '你的Sanity读取Token' });
- 如果
abouts是公开内容,无需配置token;如果是私有内容,必须使用拥有对应数据集read权限的Token。
2. 验证内容与Token权限
- 登录Sanity Studio,确认
abouts文档的访问权限是否设置为公开可访问。 - 若使用了Token,在Sanity项目的「API设置」里检查Token权限:确保它包含
read权限,且关联了正确的数据集。
3. 排查无效会话残留
错误提示"Session not found"可能是浏览器残留了无效会话凭证:
- 清除浏览器缓存和Cookie后重新测试请求。
- 检查项目中是否有其他代码篡改了请求头,比如意外添加了无效的
Authorization头信息。
4. 直接测试API请求
把错误信息里的请求URL复制到浏览器直接访问:
- 如果仍返回401,说明是Sanity项目的权限配置问题,而非代码逻辑问题。
- 如果能正常返回数据,说明客户端请求被篡改,检查是否有请求拦截器修改了请求参数。
5. 确认API版本兼容性
确保使用的API版本(2022-09-06)是Sanity支持的稳定版本,建议使用最新的日期版本以避免兼容性问题。
内容的提问来源于stack exchange,提问作者Ishraque
相关产品推荐
相关产品推荐

