由于 dotnet 核心的身份验证问题,Angular 8 差异加载失败

McA*_*den 10 authentication .net-core angular8

我最近使用ng update. 在遵循预期的迁移路径后,我构建和部署了没有问题。一切都很好,直到我开始检查其他浏览器版本并意识到401 unauthorized在请求 js 文件时有些是从服务器获取的。

问题是,差分加载是这样完成的:

<script src="main-es2015.1234.js" type="module"></script>

似乎有些浏览器在某些时候不想传递<script type="module" .... 我觉得有几种方法可以解决这个问题:

  • 我可以通过添加crossorigin="use-credentials"到脚本标签来解决这个问题,但我无法在ng build.
  • 我可以调整身份验证设置,以某种方式允许匿名请求通过我的 JS 文件,但我一直无法在没有很多复杂性的情况下找到执行此操作的 dotnet 核心方法。现在整个应用程序只允许 Windows 身份验证。如果我允许匿名,我不想担心我已经打开了一个控制器。

我认为前一种选择是更清洁的解决方案,但我愿意接受替代方案。

小智 12

自从发布已接受的答案以来,以 McAden 建议的第一种方式通过添加 crossorigin="use-credentials" 来处理此问题的选项已添加到 Angular CLI 选项中。

原始功能请求

Angular CLI 文档

在你的 angular.json 添加

{
   ...,
   "build": {
     "builder": ...,
     "options": {
        ...
        "crossOrigin": "use-credentials"
     }
   }
}
Run Code Online (Sandbox Code Playgroud)