在生产模式下,我在同一站点上有angular 5客户端和web api,所以会话没有问题,但在开发模式下,我的angular 5托管在localhost:4200上,它会在每次调用服务时重置会话。
我可以在开发模式下将angular 5和web api托管在同一主机上,但这意味着我必须一直进行ng构建(这将有很大的开销)。
有什么想法吗?我应该使用会话吗?还是有更好的方法?
更新
首先,正如Andrei Dragotoniu所说,在web api中使用会话不是最佳实践,应该避免。
但是如果web api必须使用会话,我已经找到了开发模式的解决方案--在angular 5项目中添加一个代理:我必须将我的请求代理到我的web api服务器,然后对web api和web api的请求是相同的域。
如何在angular 5项目中添加代理:
angular-cli server - how to proxy API requests to another server?
发布于 2018-04-05 17:53:03
如果你谈论的是.Net后端会话,那么不是,你不应该尝试使用它。原因很简单,api是无状态的,每个请求都是独立的,并且需要拥有完成它所需的所有数据。
然而,在客户端,您可以使用允许您存储内容以供以后使用的东西,本地存储是一个很好的候选者。
此外,在angular中,您可以使用单例服务共享数据:https://angular.io/guide/singleton-services
这些服务只需创建一次,您可以在其中存储数据,将它们注入任何需要的组件中,它们真正成为共享数据的一种方式。如果您碰巧硬重新加载应用程序,则所有数据都将丢失,因此在这种情况下,本地存储可能会有所帮助。
我怀疑你最终会得到单例服务和本地存储的组合,但千万不要尝试在无状态api中使用会话。
https://stackoverflow.com/questions/49665359
复制相似问题