Cloudflare Workers Fetch自定义Header被移除问题及Pages限制确认
Cloudflare Workers/Pages 调用沃尔玛Marketplace API 自定义Header问题
Cloudflare Workers 阻止Header被剥离的方法
Workers的fetch默认会移除非X-前缀的自定义Header,但可以通过配置cf.preserveHeaders来保留指定Header:
- 构造Request对象时,显式声明需要保留的Header列表
- 将该列表传入
cf配置项中
示例代码:
// 构建请求Header const reqHeaders = new Headers(); reqHeaders.append('WM_SVC.NAME', '你的服务标识'); reqHeaders.append('WM_QOS.CORRELATION_ID', '你的关联ID'); // 添加其他沃尔玛API要求的Header // 构造带保留配置的Request const apiRequest = new Request('https://marketplace.walmartapis.com/你的接口路径', { method: 'POST', headers: reqHeaders, body: JSON.stringify(你的请求体), cf: { preserveHeaders: ['WM_SVC.NAME', 'WM_QOS.CORRELATION_ID'] // 列出所有需要保留的非标准Header } }); // 发起请求 const response = await fetch(apiRequest);
注意:必须把所有需要保留的非X前缀Header都加入preserveHeaders数组,未列出的仍会被剥离。
Cloudflare Pages 限制确认
Cloudflare Pages(尤其是Pages Functions后端环境)确实不存在这个自定义Header剥离限制。在Functions中调用fetch时,可以直接添加WM_SVC.NAME这类非标准Header,无需额外配置即可正常发送到沃尔玛API。如果是在Pages前端代码中调用,需注意浏览器同源策略的影响,但后端Functions不受此限制。
内容的提问来源于stack exchange,提问作者maxwellray
相关产品推荐
相关产品推荐

