【问题标题】:403 error with axios but works on postman and browseraxios 出现 403 错误,但适用于邮递员和浏览器
【发布时间】:2022-02-19 02:38:19
【问题描述】:

我通过这个第三方 api 在魔法伊甸园上获得了 Nfts。 http://api-mainnet.magiceden.io/rpc/getGlobalActivitiesByQuery?q=%7B%22%24match%22%3A%7B%22txType%22%3A%22initializeEscrow%22%2C%22blockTime%22%3A%7B%22%24gt%22%3A1643468983%7D%7D%2C%22%24sort%22%3A%7B%22blockTime%22%3A-1%7D%7D

它在邮递员和浏览器上响应结果,但在 node.js 中使用 axios 导致 403 错误。

如何在 node.js 中获取数据?

 const res = await axios.get(
    'http://api-mainnet.magiceden.io/rpc/getGlobalActivitiesByQuery?q=%7B%22%24match%22%3A%7B%22txType%22%3A%22initializeEscrow%22%2C%22blockTime%22%3A%7B%22%24gt%22%3A1643468983%7D%7D%2C%22%24sort%22%3A%7B%22blockTime%22%3A-1%7D%7D',  
    { 
      headers : {
        "Content-Type": "application/json",
        "Access-Control-Allow-Credentials": "*"
      }
    }
  );
  return res.data;

【问题讨论】:

    标签: browser axios postman solana


    【解决方案1】:

    这可能是因为 CORS 错误。 您可以使用 Cors 代理来修复它。 请尝试一下。

    常量 CORS_PROXY_API = `https://cors.ryanking13.workers.dev/?u=`; const magicedenAPI = `http://api-mainnet.magiceden.io/rpc/getGlobalActivitiesByQuery?q=%7B%22%24match%22%3A%7B%22txType%22%3A%22initializeEscrow%22%2C%22blockTime%22 %3A%7B%22%24gt%22%3A1643468983%7D%7D%2C%22%24sort%22%3A%7B%22blockTime%22%3A-1%7D%7D` 常量 { 数据 } = 等待 axios({ 方法:'得到', 网址:`${CORS_PROXY_API}${magicedenAPI}` });

    【讨论】:

      【解决方案2】:

      在此处使用代理无济于事,因为他们设置了针对机器人/脚本的 Cloudflare 保护,并且需要存在 cookie:screenshot 1screenshot 2

      您应该联系他们的支持并索取 API 密钥(他们即将推出公共 API v2),然后在 Authorization: Bearer <token> 中使用它

      这里有几点需要注意:他们的 API v2 仍在工作中,并且缺少一些基本功能。使用他们当前的 v1 API 不需要 API 密钥(这是他们的支持人员所说的),但它确实具有针对脚本攻击的机器人保护。

      我对使用 API v2 犹豫不决,因为它甚至缺乏最基本的东西,而且我不希望它很快面世。就个人而言,我希望与设法将 v1 集成到他们的应用程序中的人取得联系,看看他们为了能够做到这一点而采取了哪些必要的步骤。

      如果您设法找到有关这方面的一些新信息,请告诉我。如果我知道如何正确设置 v1 连接,我也会编辑此评论。

      编辑:通过使用https://github.com/puppeteer/puppeteer 库设法让它工作。启动了一个小的无头 Chrome 实例,然后我用那个浏览器访问了 ME API:screenshot 3

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-05-24
        • 2021-08-04
        • 2019-11-09
        • 2021-01-14
        • 2022-07-19
        • 1970-01-01
        • 2022-07-08
        • 2021-10-12
        相关资源
        最近更新 更多