【问题标题】:How to set X-Forwarded-For in Node.Js app while calling with axios使用 axios 调用时如何在 Node.Js 应用程序中设置 X-Forwarded-For
【发布时间】:2020-02-29 11:41:48
【问题描述】:

好的,我刚刚有机会在 nodejs 中工作,我正在使用 axios 库从第三方 url 获取数据。

在部署到登台 ENV 之前,一切都运行得非常顺利。

我在使用 rails 时遇到了类似的问题,我找到的解决方案是使用

@request['X-Forwarded-For'] = 'XX.YYY.Z.Z' 在标题中。

现在来解决问题,已经尝试过

options = { headers: { 'X-Forwarded-For': 'XX.YYY.Z.Z' } } 即使在本地环境中它也根本不起作用:/

axios.get(URL, options); 这就是我使用它来获取数据的方式,但它一直在加载和加载,

我有什么遗漏或替代的,以便我可以尝试吗?

【问题讨论】:

  • 您好,您没有使用 axios.get(URL).then().catch() 获取数据,对吧?你从服务器端得到什么错误?
  • 您好 @PrakashKarena ,我正在从中获取数据,但似乎请求的页面限制了我的代理来获取数据,(从 rails 调用 api 时,同一代理能够访问)和作为回应,它说“我们暂时不可用,很快就会为您服务”表示它向我发送了未经授权的请求的响应。如果我说得足够清楚,请告诉我,否则我会添加更多数据来描述问题。
  • 我认为您的浏览器可能会收到 CORs(cross-origin) 错误,对吧?
  • @PrakashKarena 是的,看起来是这样,有什么解决方案可以避免这件事并获得预期的结果吗?

标签: node.js express axios x-forwarded-for


【解决方案1】:

在从 express 创建应用后使用这个中间件

 //CORS error solution 
    app.use((req,res,next)=>{
        res.setHeader('Access-Control-Allow-Origin','http://localhost:3000');//your frontend origin 
        res.setHeader('Access-Control-Allow-Credentials', true);
        res.setHeader('Access-Control-Allow-Methods','GET,POST,PUT,DELETE,PATCH');
        res.setHeader('Access-Control-Allow-Headers','Content-Type ,Origin, X-Requested-With, Accept, Authorization');
        next();
    })

希望这会对您有所帮助。如果您有任何疑问,请告诉我。

【讨论】:

  • 感谢您的输入,但我得到的是状态为 200 的响应,其输出不正确,没有 X-Forwarded-For 标头,我得到的是正确的 json 响应在它的位置,但是当我添加这个标题时,我会得到一个完整的 HTML 页面,上面写着他们当前处于离线状态,我假设他们不想与我的呼叫共享数据:/ 并且它仅在暂存阶段,在当地超级好。
猜你喜欢
  • 1970-01-01
  • 2017-01-07
  • 2019-03-09
  • 1970-01-01
  • 2011-01-15
  • 1970-01-01
  • 2013-12-05
  • 2017-05-01
  • 2010-10-02
相关资源
最近更新 更多