Скрипт Jquery работает внутри html-файла, но терпит неудачу при импорте из внешнего файла

#html #jquery #socket.io

#HTML #jquery #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).
  

Ответ №1:

Измените свой тип на «application / javascript» для этого скрипта. Кроме того, если вы обнаружите, что скрипт не загружается, добавьте свойство defer в тег script, как показано ниже.

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

Наконец, я видел похожие проблемы, когда js не находится в источнике, на который вы ссылаетесь. Пожалуйста, убедитесь, что ваша исходная ссылка верна.

Комментарии:

1. Это не сработало, а также все файлы находятся в одном каталоге.