如何移除Contentful的createClient API请求携带的默认auth-token header
解决方案
方法1:给Contentful客户端传入独立的Axios实例(最推荐)
问题根源是Contentful SDK默认复用全局Axios实例,你配置的全局默认headers会被继承,直接传入headers参数只会和全局配置合并,无法删除已存在的全局header。
你可以自己创建一个无全局配置的干净Axios实例,传入Contentful客户端,完全隔离全局配置:
import axios from 'axios' import * as contentful from 'contentful' // 创建完全独立的Axios实例,不会继承全局配置 const contentfulAxios = axios.create() const client = contentful.createClient({ space: '你的space id', accessToken: '你的访问令牌', // 传入独立Axios实例 axios: contentfulAxios })
这个方法不会影响你原有全局Axios的配置,所有Contentful的请求都会走这个干净的实例,不会携带auth-token header。
方法2:通过请求拦截器删除指定header
如果你不想额外创建Axios实例,也可以利用Contentful SDK提供的requestInterceptor配置,在请求发出前删除auth-token:
const client = contentful.createClient({ space: '你的space id', accessToken: '你的访问令牌', requestInterceptor: (config) => { // 直接删除目标header delete config.headers['auth-token'] return config } })
这个方案会在每次Contentful请求发出前清理指定header,也可以解决跨域报错问题。
内容的提问来源于stack exchange,提问作者mukund
相关产品推荐
相关产品推荐

