如何在 hapi.js 中允许 CORS

Sac*_*hah 1 cors hapi.js

我是新手Hapi.js,我设计了一个登录 API。我从邮递员那里获得了正确的有效负载数据,但是当我从我的角度应用程序调用相同的 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"]
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

我使用此链接作为参考

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

错误信息:

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

mar*_*t89 7

尝试这样写,而不使用"Access-Control-Allow-Origin"if 尚未执行的操作。问题的根源可能是:

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"]
    }
}
});
Run Code Online (Sandbox Code Playgroud)

如果这也不起作用,请尝试此操作以确保问题不在其他地方:

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

  • 在我的角度应用程序中,有一个用于发送标头和所有内容的代码,因此我有评论调用代码并简单地发送数据。现在我可以在 hapi 服务器中获取数据了。我接受你的答案,因为你在这个问题上投入了很多时间,而且这也是正确的答案。:) 谢谢你的帮助。 (2认同)
  • 是的,我实际上在想另一个中间件是否会干扰它......很高兴您发现了这个问题,并感谢您的接受:) (2认同)