是否可以将crossorigin属性添加到由角度cli生成的脚本标签中?
在运行我的角度应用程序时,脚本标签会添加到index.html的末尾:
<script src="runtime-es2015.3d05cbd29d24231258bf.js" type="module"></script>
<script src="polyfills-es2015.28da6787754ec8436843.js" type="module"></script>
<script src="main-es2015.4106b7f4d43a05cb792d.js" type="module"></script>
是否可以配置angular-cli,以便在构建index.html中包含这些标签时,将crossorigin属性添加到脚本声明中:
<script src="runtime-es2015.3d05cbd29d24231258bf.js" type="module" crossorigin="use-credentials"></script>
为什么要问这个问题??我的应用程序已部署到使用基本身份验证的apache服务器。使用Firefox或Edge(chrome很好)时,由于未设置Authorization标头,因此对javascript模块的请求会收到401错误。如果添加了跨域标签,则会设置授权标头。因此,如果我希望我的用户能够使用FF或Edge,则需要添加该crossorigin属性。
感谢您阅读我的问题。
答案 0 :(得分:3)
从angular / cli 8.1(PR)开始,可以设置一个标志来更改index.html中的脚本标签(和相关的链接标签)
-crossOrigin = none |匿名|使用凭据
定义提供CORS支持的元素的crossorigin属性设置。 默认值:无 https://angular.io/cli/build
另一种选择是使用构建后的npm步骤来解开index.html并根据各种需要对其进行更改