【问题标题】:How to allow CORS in hapi.js如何在 hapi.js 中允许 CORS
【发布时间】:2019-12-30 08:54:55
【问题描述】:

我是 Hapi.js 的新手,我设计了一个登录 API。我从邮递员那里得到了正确的有效载荷数据,但是当我从我的 Angular 应用程序调用相同的 API 时,我没有得到数据。即使在网络选项卡中,它也会显示失败状态。

经过一些 RND,我发现了 CORS 问题,并以这种方式设置了 CORS。

const server = Hapi.server({
    port: 3000,
    host: '192.168.1.13',        
    "routes": {
        "cors": {
            "origin": ["Access-Control-Allow-Origin","192.168.1.13:4200"],
            "headers": ["Accept", "Content-Type"],
            "additionalHeaders": ["X-Requested-With"]
        }
    }
});

我将此链接用于refrence

我的节点服务器在 3000 端口上运行,而 Angular 应用程序在 4200 上运行。

错误信息:

从 'http://192.168.1.13:3000/login' 访问 XMLHttpRequest 来源 'http://192.168.1.13:4200' 已被 CORS 策略阻止: 对预检请求的响应未通过访问控制检查:否 'Access-Control-Allow-Origin' 标头出现在请求的 资源。

【问题讨论】:

  • 您可能需要设置 ["Access-Control-Allow-Origin","http://192.168.1.13:4200"]["Access-Control-Allow-Origin","http://localhost:4200"] 才能使其工作
  • @marcodt89 我试过了,但还是不行。
  • 即使您尝试输入origin: ['*'](允许任何来源),您仍然有问题吗?
  • 是的,我也试过了。
  • @marcodt89 我已经编辑了我的帖子并添加了错误消息。请检查一下,它可能对你有帮助。

标签: cors hapijs


【解决方案1】:

尝试在没有"Access-Control-Allow-Origin" 的情况下编写它,如果还没有这样做的话。这可能是问题的根源:

const server = Hapi.server({
port: 3000,
host: '192.168.1.13',        
"routes": {
    "cors": {
        "origin": ["http://192.168.1.13:4200"],
        "headers": ["Accept", "Content-Type"],
        "additionalHeaders": ["X-Requested-With"]
    }
}
});

如果即使这样也不起作用,请尝试这样做以确保问题不在其他地方:

const server = Hapi.server({
port: 3000,
host: '192.168.1.13',        
"routes": {
    "cors": true
}
});

【讨论】:

  • 在我的 Angular 应用程序中,有一个发送标题和所有内容的代码,所以我有注释调用代码并简单地发送数据。现在我可以在 hapi 服务器中获取数据了。我接受你的回答,因为你在这个问题上投入了很多时间,这也是正确的答案。 :) 谢谢你的帮助。
  • 是的,我实际上在考虑是否有其他中间件会干扰...很高兴您发现了问题,并感谢您的接受:)
猜你喜欢
  • 2021-12-31
  • 2018-03-02
  • 2021-11-17
  • 2021-10-23
  • 2023-03-30
  • 2017-12-22
  • 2017-07-28
  • 1970-01-01
  • 2017-03-22
相关资源
最近更新 更多