因此,我正在尝试将 Node 项目从使用 request.js 迁移到使用 axios.js
当我使用请求包时,我能够像这样从响应对象中获取 URI 数据
request(req, (err, response) => {
if (err) console.error(err);
console.log(response.statusCode);
console.log(response.request.uri);
console.log(response.request.uri.hash);
console.log(response.request.uri.host);
});
但是当我这样使用 axios 时
axios(req)
.then(response => {
console.log(response.status);
console.log(response.request.uri);
})
.catch(err => console.error(err));
response.request.uri
undefined那么,我是否使用了 axios 包错误,还有另一种方法可以获取我想要的信息,或者 axios 不支持该信息??
最佳答案
您可以通过访问 response.config.url
或 response.request.responseURL
来访问它,但如果您只想要 URI,则将需要使用正则表达式,或者您可以通过使用数组或字符串方法来使用 JS。
示例:
const axios require('axios');
const url = require('url');
axios(req)
.then(response => {
const parsedURL = url.parse(response.config.url);
console.log(parsedURL.host);
})
.catch(err => console.error(err));
如果您不需要解析的 URL 信息并且不想要另一个包:
// Remove the URL Protocol (https:// & http://) using regex.
const removeHttpProtocol = (url) => url.replace(/(^\w+:|^)\/\//, '');
axios(req)
.then(response => {
console.log(const responseURI = removeHttpProtocol(response.config.url);
console.log(responseURI);
})
.catch(err => console.error(err));
关于javascript - axios - 从响应对象中获取请求 URI 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59323618/