Axios 302响应

bbuxkriu  于 2023-03-24  发布在  iOS
关注(0)|答案(2)|浏览(211)

我试图得到一个网站的响应标题,每当我这样做,它只是重定向我“临时移动”。我已经做了与fiddler,试图在我的头上得到一个清晰的图像,我只是不能包裹我的头周围,我会怎么做与Axios。基本上,我试图得到网站的标题之前,重定向发生。如果这不是't possible我还应该使用什么来自动执行此操作?

const axios = require('axios')
const readline = require('readline');
const title = require('node-bash-title')
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});
console.clear()
var loopline = function () {
rl.question('Input: ', (answer) => {    
    axios.get(`https://example302site.com/${answer}`, {
      .then((response) => {
        console.log(response.headers)
      }, (error) => {
        console.log(`AssetId: ${error.response.body}`)
        loopline()
    })
})
}
loopline()

(抱歉代码混乱)

mefy6pfw

mefy6pfw1#

Axios有一个请求配置选项maxRedirects,允许你控制重定向的次数。将它设置为0可以防止重定向,并允许你读取响应头:

axios.get(`https://assetgame.roblox.com/asset/?versionid=5667870400`, {
        headers: { 'User-Agent': 'Roblox/WinInet' },
        maxRedirects: 0
      })
laawzig2

laawzig22#

[non-Nodejs解决方案] maxRedirects仅在Nodejs (link)中受支持。这意味着如果您在浏览器中使用它(js代码),重定向仍然会发生。
替代解决方案:将fetch()与redirect选项一起使用时为manual(learn more here)
示例:

fetch(requestUrl, {
        redirect: "manual",
      })
        .then((response) => {
          //do something...
          console.log(response);
         //please note the headers will not be printable with console.log and the is no way to obtain the `Location` header but the other is ok
        })
        .catch((err) => {
          console.error(err);
        });

相关问题