可能将crossorigin属性添加到由角度cli生成的脚本标签?

时间:2019-07-23 22:31:49

标签: javascript angular angular-cli

是否可以将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属性。

感谢您阅读我的问题。

1 个答案:

答案 0 :(得分:3)

从angular / cli 8.1(PR)开始,可以设置一个标志来更改index.html中的脚本标签(和相关的链接标签)

  

-crossOrigin = none |匿名|使用凭据
  定义提供CORS支持的元素的crossorigin属性设置。   默认值:无   https://angular.io/cli/build

另一种选择是使用构建后的npm步骤来解开index.html并根据各种需要对其进行更改

cheeriojs是在服务器端进行此类操作的注意事项(有关更多详细信息,请查看此example