【问题标题】:Jquery script working when inside the html file but fails when imported from an external fileJquery 脚本在 html 文件中工作,但在从外部文件导入时失败
【发布时间】:2020-11-13 12:16:36
【问题描述】:

当我发现这个问题时,我正在关注 socket.io 网站上的文档。

我的工作代码

<script src="/socket.io/socket.io.js"></script>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script>
$(document).ready(function() {
 $(function () {
   var socket = io();
   $('form').submit(function(e) {
     e.preventDefault(); // prevents page reloading
     socket.emit('chat message', $('#m').val());
     $('#m').val('');
     return false;
   });
 });
})
</script>

当从外部文件导入相同的 jquery 脚本时,它会失败。

client.js 包含完全相同的 jquery 脚本并且在同一目录中。

<script src="/socket.io/socket.io.js"></script>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script type="text/javascript" src="client.js"></script>

以下是来自控制台的错误,我无法弄清楚它是什么

The resource from “http://localhost:3000/client.js” was blocked due to MIME type (“text/html”) mismatch (X-Content-Type-Options: nosniff).

【问题讨论】:

    标签: html jquery socket.io


    【解决方案1】:

    将该脚本的类型更改为“应用程序/javascript”。此外,如果您发现脚本未加载,请将 defer 属性添加到脚本标记,如下所示。

    <script type="application/javascript" defer src="./client.js"></script>
    

    最后,我看到了类似的问题,即 js 不在您引用的源中。请确保您的源链接正确。

    【讨论】:

    • 它不起作用,所有文件都在同一个目录中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-14
    • 1970-01-01
    • 2020-05-03
    • 2018-08-17
    • 2022-06-24
    • 1970-01-01
    • 2019-06-14
    相关资源
    最近更新 更多