【问题标题】:Why is my HTTP get request giving me a 403 error?为什么我的 HTTP 获取请求给了我 403 错误?
【发布时间】:2023-03-23 15:35:01
【问题描述】:

我正在尝试使用 node.js 服务器抓取网站。我正在使用 axios 发出我的 http 请求。当我发出请求时,我从服务器收到 403 错误。

使用 Postman,我可以成功发出请求并返回 HTML 文件。为什么 Postman 能够获得 200 代码而我的请求失败?我可以尝试哪些事情来成功提出请求?

//我使用的基本axios请求

axios.get(url)
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
      console.log(error);
  })

【问题讨论】:

  • 比较postman和axios使用的请求头,比如a​​ccept甚至user-agent

标签: node.js web-scraping axios


【解决方案1】:

遇到完全相同的情况:仅授权在邮递员上工作的 POST 方法,而不是在 axios 上工作。 修复它而不是调用axios.post(),调用:

axios({
        method: 'POST',
        url: 'http://localhost:1337/post',
        headers: {
          Authorization: `Bearer ${localStorage.getItem('token')}`
        },
        data: payload
      })

提示:参考这个github issue

【讨论】:

  • 仅当后端不期望通过GET 进行身份验证时才适用。可以使用 axios 通过GET 传递标头。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-14
  • 2012-10-04
  • 2019-10-28
  • 1970-01-01
  • 2015-12-04
  • 2021-01-26
  • 2016-05-12
相关资源
最近更新 更多