我最近使用ng update
从Angular 7更新到Angular 8。遵循预期的迁移路径,没有问题后,我进行了构建和部署。在开始检查其他浏览器版本之前,一切工作都很好,并且意识到有些服务器在请求js文件时从服务器获取了401 unauthorized
。
问题是,差分加载是这样完成的:<script src="main-es2015.1234.js" type="module"></script>
似乎有些浏览器有时不希望传递<script type="module" ...
的身份验证信息。令我惊讶的是,有几种方法可以解决此问题:
crossorigin="use-credentials"
来解决此问题,但是我无法在ng build
中找到如何做到这一点。 我认为前一种选择是更清洁的解决方案,但我愿意接受其他选择。
最佳答案
自发布接受的答案以来,McAden通过添加crossorigin =“use-credentials”建议的第一种方式来处理此问题的选项已添加到Angular CLI选项中。
Original feature request
Angular CLI documentation
在您的angular.json中添加
{
...,
"build": {
"builder": ...,
"options": {
...
"crossOrigin": "use-credentials"
}
}
}
关于authentication - 由于dotnet core的身份验证问题,Angular 8差异加载失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56777096/