我想在响应中得到200状态码,但结果是ETIMEDOUT。我不明白为什么我可以通过postman获取成功的响应,但使用node-fetch时总是响应ETIMEDOUT。下面是代码示例:
const Resource = {
get: cb => {
fetch('https://example.com', {
method: 'POST',
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
body: {...some body...},
}).then(res => {
if (res.status !== 200) cb(`Status: ${res.status}, ${res.statusText}`)
return res.text()
}).then(data => {
cb(null, data)
}).catch((err) => {
console.log('ERROR: ', err)
})
}
}
以下是返回结果:
错误:{ FetchError: 请求 https://example.com 失败,原因:连接超时
at ClientRequest.<anonymous> (C:\Users\projects\DSSRQ\node_modules\node-fetch\lib\index.js:1393:11)
at emitOne (events.js:116:13)
at ClientRequest.emit (events.js:211:7)
at TLSSocket.socketErrorListener (_http_client.js:387:9)
at emitOne (events.js:116:13)
at TLSSocket.emit (events.js:211:7)
at emitErrorNT (internal/streams/destroy.js:64:8)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickCallback (internal/process/next_tick.js:180:9)
message: '请求 https://example.com 失败,原因:连接超时',
type: '系统',
errno: 'ETIMEDOUT',
code: 'ETIMEDOUT' }