私が使用しているもの:Axios:0.17.1ノード:8.0.0
次の標準Node getは正常に機能しますが、Axiosバージョンは機能しません。理由は何ですか?
ノードhttp:
http
.get(`${someUrl}`, response => {
buildResponse(response).then(results => res.send(results));
})
.on('error', e => {
console.error(`Got error: ${e.message}`);
});
Axios:
axios
.get(`${someUrl}`)
.then(function(response) {
buildResponse(response).then(results => res.send(results));
})
.catch(function(error) {
handleError(error, res);
});
「リクエストはステータスコード503で失敗しました」というキャッチで503を取得しました
プロキシの詳細をAxiosFYIに渡すことができるようです。
ドキュメントから...
// 'proxy' defines the hostname and port of the proxy server
// Use `false` to disable proxies, ignoring environment variables.
// `auth` indicates that HTTP Basic auth should be used to connect to the proxy, and
// supplies credentials.
// This will set an `Proxy-Authorization` header, overwriting any existing
// `Proxy-Authorization` custom headers you have set using `headers`.
proxy: {
Host: '127.0.0.1',
port: 9000,
auth: {
username: 'mikeymike',
password: 'rapunz3l'
}
},
私のために働いた唯一のことは、プロキシの設定を解除することでした:
delete process.env['http_proxy'];
delete process.env['HTTP_PROXY'];
delete process.env['https_proxy'];
delete process.env['HTTPS_PROXY'];
From: axios.getを使用するとソケットがハングアップしますが、https.getを使用するとソケットがハングアップしません
Axiosの応答を返すのを忘れているかもしれないと思います。
return axios
.get(`${someUrl}`)
.then(function(response) {
return buildResponse(response).then(results => res.send(results));
})
.catch(function(error) {
handleError(error, res);
});
Axios.getの前とbuildResponseの前に戻ることに注意してください
request config
でwithCredentials
プロパティを使用すると、問題が解決します。
axios
.get(`${someUrl}`, { withCredentials: true })
.then(function(response) {
return buildResponse(response).then(results => res.send(results));
})
.catch(function(error) {
handleError(error, res);
});