IIS Express不能提供ES6 JavaScript模块服务

5

我在ASP.NET MVC应用程序中开始使用ES6 javascript模块,但是IIS Express拒绝为 script 标签中的 module 类型javascript文件提供服务。 我收到< strong> 401未经授权。

<script src="~/Scripts/index.js" type="module"></script>

当我从 script 标签中删除 type="module" 时,它可以正常工作。

请求过滤器是否涉及?请帮我正确设置它们,谢谢。


现在我也遇到了这个问题。你找到解决方案了吗? - pwaivers
并不是。我通过使用node.js模块系统(而不是ES6模块)和browserify编译所有js文件到一个文件中解决了这个问题。 - Peracek
1个回答

6
我在一个相当简单的用于个人使用的 Apache 设置中遇到了同样的问题。直到我发现这篇文章之前,我一直感到很困惑。
查看标题为“服务器注意事项”的小节,其中提到在<script>标签中使用crossorigin="use-credentials"。由于我只在本地进行开发,这听起来有点不太相关,但我无从下手,所以试着冒险尝试它,然后它奏效了。
我不会假装理解为什么会奏效,或者对任何意外后果发表观点,因此我建议在将其粘贴到部署之前,深入了解这些方面。

1
另一篇带有相关信息的文章:链接。请参阅whatwg问题#2557的链接,其中指出了跨来源设计用于同源行为的可疑用途,并建议改用crossorigin="anonymous" - formula-hunter
对我来说,只需添加 crossorigin 属性(无需值)即可解决问题。 - domsson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接