我试图使用express和 AJAX 测试一些API调用,但如果我将js脚本分离到自己的文件中,则会出现以下错误:
由于MIME类型(“text/html”)不匹配,来自“http://localhost:9000/userProfileFunctions.js“的资源被阻止(X-Content-Type-Options:nosniff)。
如果我将所有内容都保存在同一个html文件中,它就可以工作,但这更像是解决问题的创可贴。我甚至将express app.use header设置为“X-Content-Type-Options:nosniff”但它仍然不工作
main.html
<html>
<head>
<script
src="https://code.jquery.com/jquery-3.4.1.min.js"
integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
crossorigin="anonymous">
</script>
<script src="userProfileFunctions.js" ></script>
</head>
<body>
<form>
<h4>GET REQUEST USERS PROFILE</h4>
UUID: <input id="getUserInput" type="text" name="UUID"><br>
<input id="getUserProfile" type="button" value="submit">
</form>
</body>
</html>
app.js
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
6条答案
按热度按时间um6iljoc1#
这不是一个非常技术性的答案,但我在测试中遇到了同样的错误,即使生产版本可以工作。当我关闭Firefox(开发者版)中的增强跟踪保护时,错误消失了。
n3h0vuf22#
对我来说,它可以将所有的JS文件放入一个包含静态文件的文件夹中,并在express文件中添加以下行:
app.use(express.static(__dirname + '/static'));
我相信如果有人面临同样的问题,这是一个很好的选择。
06odsfpq3#
这是因为文件的位置已经改变了。检查路径并将脚本的
src
标记更新为正确的位置。示例:
anhgbhbe4#
把那个JS文件和“导入”的html文件放在同一个目录下。我刚刚解决了同样的问题。
pb3s4cty5#
有此问题,请检查您的文件位置是否正确。
x33g5p2x6#
我发现这个错误通常是由文件路径中缺少“/”引起的。
示例:
会导致错误,但是
不会。请注意href开头多了一个“/”。