Отказано в выполнении сценария, включена строгая проверка типа MIME?

Почему я получаю эту ошибку в консоли?

Отказался от выполнения сценария с https://www.googleapis.com/customsearch/v1?key=API_KEY&q=flower&searchType=image&fileType=jpg&imgSize=small&alt=json ', потому что его тип MIME (' application/json ') не является исполняемым, и включена строгая проверка типа MIME.

Ответы

Ответ 1

У вас есть элемент <script> который пытается загрузить некоторый внешний JavaScript.

URL, который вы указали, указывает на файл JSON, а не на программу JavaScript.

Сервер правильно сообщает, что это JSON, поэтому браузер прерывается с этим сообщением об ошибке вместо того, чтобы пытаться выполнить JSON как JavaScript (что вызовет ошибку).


Коэффициенты заключаются в том, что основной причиной этого является то, что вы пытаетесь сделать запрос Ajax, попали в ошибку перекрестного происхождения и попытались исправить это, сообщив jQuery, что вы используете JSONP. Это работает только в том случае, если URL-адрес предоставляет JSONP (который является другим подмножеством JavaScript), которого нет у этого.

Тот же URL-адрес с дополнительным параметром строки запроса callback=the_name_of_your_callback_function действительно возвращает JavaScript.

Ответ 2

В моем случае это был файл не найден, я набрал путь к javascript файлу неправильно.

Ответ 3

Этот результат является первым, что всплывает в google, и является более широким, чем то, что происходит здесь. На экспресс-сервер будет применяться следующее:

Я пытался получить доступ к ресурсам из вложенной папки.

Внутри index.html меня было

<script src="./script.js"></script>

Статический маршрут был установлен на:

app.use(express.static(__dirname));

Но script.js находится во вложенной папке, как в: js/myStaticApp/script.js refused to execute script, meme type checking is enabled. Я просто изменил статический маршрут на:

app.use(express.static(path.join(__dirname, "js")));

Теперь это работает :)

Ответ 4

Попробуйте использовать express.static(), если вы используете Node.js.

Вам просто нужно передать имя каталога, в котором вы храните свои статические активы, в промежуточное программное обеспечение express.static, чтобы начать обслуживать файлы напрямую. Например, если вы сохраняете файлы изображений, CSS и JavaScript в каталоге с именем public, вы можете сделать это, как показано ниже:

т.е.: app.use(express.static('public'));

Этот подход разрешил мою проблему.

Благодаря,

Ответ 5

Добавьте фрагмент кода, как показано ниже, в html записи. т.е. "index.html" в реакции

<div id="wrapper"></div>
<base href="/" />

Ответ 6

У меня была та же проблема, и проблема была в том, что мне не хватало косой черты на моем пути.

я имел

и чтобы исправить это, мне нужно было добавить косую черту между jquery-ui и jquery-ui.min:

  <script type="text/javascript" src="js/jquery-ui/jquery-ui.min.js"></script>

надеюсь это поможет: D

Ответ 7

Я случайно назвал файл js .min вместо .min.js...

Ответ 8

В моем случае, у меня была символическая ссылка для файла 404, и мой Tomcat не был настроен для разрешения символических ссылок.

Я знаю, что это вряд ли будет причиной для большинства людей, но если вы в отчаянии, проверьте эту возможность на всякий случай.

Ответ 9

Я решил проблему, добавив только $ {pageContext.request.contextPath} к моему пути jsp. вместо:

 <script    src="static/js/jquery-3.2.1.min.js"></script>

Я установил:

 <script    src="${pageContext.request.contextPath}/static/js/jquery-3.2.1.min.js"></script>