Загрузить файл Javascript на локальном хосте

Моя веб-страница создает новый элемент скрипта, а затем загружает скрипт с локального сервера. Проблема в том, что скрипт не может быть загружен и показывает PROTOCOL ERROR:

https://localhost:4200/script/test.js net::ERR_SSL_PROTOCOL_ERROR

index.html

<!DOCTYPE html>
<html lang = "en">
  <head>
    <meta charset = "UTF-8" />
    <link href = "./public/nps.style.css" rel = "stylesheet" />
        <script>
          j = document.getElementsByTagName('script')[0],
          k = document.createElement('script');
          k.src = 'http://localhost:4200/script/test.js';
          j.parentNode.insertBefore(k,j);
        </script>
  </head>
  <body>
    <p>Testing</p>
  </body>
</html>

Затем создайте локальный сервер для его прослушивания, чтобы можно было загрузить файл JavaScript.

index.js:

const express = require('express');
const cors = require('cors');
const { test } = require('./script/test.js');

const api = express();
api.use(cors({origin: '*'}));
api.use('/script', express.static('public'));

api.listen(4200, () => {
  console.info("Server listening");
})

test.js: alert("it works!");

Как я могу решить эту проблему?

Обновлять:

Изначально у меня был источник нового элемента скрипта как 'https://localhost:4200/script/test.js', поэтому я перешел на http, возникла новая ошибка:

GET http://localhost:4200/script/test.js net::ERR_ABORTED 404 (Not Found)

🤔 А знаете ли вы, что...
JavaScript обеспечивает обработку ошибок с использованием конструкции try...catch.


61
2

Ответы:

Вы не рассматривали возможность использования https? Похоже, это может быть ваша проблема, работающая локально. Ошибка протокола является поддавки.


Решено

Вы просто меняете 2 строки своего index.js кода, чтобы решить эту проблему. Попробуйте с этим кодом:

const express = require('express');
const cors = require('cors');
// const { test } = require('./script/test.js');

const api = express();
api.use(cors({ origin: '*' }));
api.use(express.static('public'));
api.use('/script', express.static('script'));

api.listen(4200, () => {
    console.info("Server listening");
});

И убедитесь, что ваше управление каталогами/файлами выглядит так:


Интересные вопросы для изучения

Как использовать значение переменной непосредственно в динамически созданном геттере JavaScript?Как я могу отсортировать html ul li на основе его приоритетов значенияНе знаете, как создать новую строку для каждой строки внутри массиваКипарис | Как создать переменную из тела ответа сети для OTP при входе в системуКогда пользователь нажимает любую кнопку, я бы хотел, чтобы имя местоположения исчезало, но я не могу заставить его работать с этим условным оператором«Контекст выполнения был уничтожен, скорее всего, из-за навигации» при очистке с помощью Puppeteer в NextJsБот Discord не читает сообщения (discord.js)Ошибка при использовании мангуста: TypeError: Неверная конфигурация схемы: «Модель» не является допустимым типом на путиТипоразмер bigint превышает (не указан) максимум; `RangeError: превышен максимальный размер BigInt`Graphql Set-Cookie отправляется, но не устанавливается