我反正是很汗颜,使用 node 的 fetch 时查了半天问题。
用 express 对特定 api 做简单的转发,要转发的服务需要 content-type 是 application/x-www-form-urlencoded。
app.use('/proxy', (req, res) => {
fetch('https://target.url.com', {
method: 'POST',
headers: {
'content-type': 'application/x-www-form-urlencoded'
},
// req.body 是一个对象
body: new URLSearchParams(req.body)
});
});
原来 application/x-www-form-urlencoded 需要 body 是
encodeURIComponent(key1)=encodeURIComponent(value1)&encodeURIComponent(key2)=encodeURIComponent(value2)
啊