如何用给定axios配置发起WooCommerce GET请求 解决User-Agent报错
报错原因
Refused to set unsafe header "User-Agent"是浏览器端安全限制触发的:浏览器禁止前端JavaScript手动修改User-Agent这类归为「不安全首部」的请求字段,而WooCommerce REST API的官方JS客户端默认会给所有请求注入User-Agent头,在浏览器环境发起请求时就会触发该拦截。
修复方案
在初始化实例的axiosConfig.headers配置中显式将User-Agent设为undefined,axios在组装请求头时会自动忽略值为undefined的字段,就不会再尝试设置该不安全头触发拦截。
修改后的完整初始化代码:
const woocommerce = new WooCommerceRestApi({ url: process.env.REACT_APP_WP_URL, consumerKey: process.env.REACT_APP_WP_KEY, consumerSecret: process.env.REACT_APP_WP_SECRET, version: 'wc/v3', axiosConfig: { headers: { 'User-Agent': undefined }, }, })
注意事项
- 该修改不会影响WooCommerce API的鉴权逻辑:WooCommerce REST API的身份校验依赖
consumerKey/consumerSecret生成的请求签名,和User-Agent字段无关 - 如果修改后仍出现相同报错,检查项目中是否有全局axios拦截器主动注入了
User-Agent头,全局注入的该字段同样会触发浏览器拦截
内容的提问来源于stack exchange,提问作者Foysal Hasan
相关产品推荐
相关产品推荐

