【问题标题】:Should we be using http or https in our API request while building our applications?在构建应用程序时,我们应该在 API 请求中使用 http 还是 https?
【发布时间】:2020-07-13 18:22:25
【问题描述】:

我试图弄清楚为什么我不能从 Angular 向我的后端 Nest 应用程序发出 api 请求,并且给出的一个建议是将 http 更改为 https。在我遇到的所有示例中,他们都在使用http,而且效果很好。在创建我们的应用程序时,我们应该使用什么或者它们都应该在本质上起作用吗?

【问题讨论】:

  • 应该使用 http 或 https。你得到什么错误?
  • 我昨晚发了一篇关于它的帖子stackoverflow.com/questions/60963983/… 仍然卡在那里,只是在闲逛我能想到的任何事情。
  • 看另一篇文章,我认为您需要在后端启用 cors,而不是前端。您可能遇到的另一件事是证书不受信任。如果您在浏览器中导航到您的 GET 端点之一或使用邮递员,会发生什么?
  • 在浏览器中,我可以毫无问题地在localhost:3333 调用数据,截至目前,我在嵌套应用程序app.enableCors({origin: ['*'], credentials: true}); app.use((res, next) => { res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE'); res.header('Access-Control-Allow-Headers', 'Content-Type, Accept'); next(); }); 的main.ts 文件中有这个,但它没有不同。

标签: angular typescript nestjs


【解决方案1】:

通常,出于开发目的,我会将http 用于我的后端服务。从长远来看,这会容易得多。但是,对于生产系统,应使用https。 我从事的所有项目的设计方式是后端服务一直使用http,并且在它前面有一个负载均衡器,它将后端暴露为https端点(例如implementation via NGINX和一些@987654322 @)

然而,这并没有处理CORS。启用CORS 的步骤取决于后端技术。使用NestJS,步骤描述here

要启用 CORS,请在 Nest 应用程序对象上调用 enableCors() 方法。

const app = await NestFactory.create(AppModule);
app.enableCors();
await app.listen(3000);

enableCors() 方法采用可选的配置对象参数。 此对象的可用属性在官方CORS 文档中进行了描述。 或者,通过 create() 方法的选项对象启用 CORS。 将 cors 属性设置为 true 以使用默认设置启用 CORS。 或者,将 CORS configuration object 作为 cors 属性传递 值来自定义其行为。

const app = await NestFactory.create(AppModule, { cors: true });
await app.listen(3000);

【讨论】:

    猜你喜欢
    • 2022-01-21
    • 1970-01-01
    • 2022-11-02
    • 2010-10-07
    • 1970-01-01
    • 2018-11-19
    • 1970-01-01
    • 1970-01-01
    • 2014-05-01
    相关资源
    最近更新 更多