Я пытаюсь получить доступ к сценарию как JSON через AJAX, который прекрасно работает в Safari и других браузерах, но, к сожалению, не будет выполняться в Chrome. Это происходит со следующей ошибкой:
Отказался от выполнения скрипта из '*', потому что его тип MIME ('application / json') не является исполняемым, и включена строгая проверка типов MIME.
Вот запрос:
$.ajax({
url: "http://some_url/test.json?callback=?",
type: "GET",
dataType: 'json',
cache: true,
success: function (data, status, error) {
console.log('success', data);
},
error: function (data, status, error) {
console.log('error', data, status, error);
}
});
У кого-нибудь есть обходной путь для этого?
javascript
jquery
ajax
json
google-chrome
Пол Неллиган
источник
источник
Ответы:
Добавляя аргумент обратного вызова, вы сообщаете jQuery, что хотите сделать запрос для JSONP, используя элемент script вместо запроса для JSON, используя XMLHttpRequest.
JSONP - это не JSON. Это программа на JavaScript.
Измените ваш сервер так, чтобы он выводил правильный тип MIME для JSONP, который есть
application/javascript
.(Пока вы это делаете, прекратите говорить jQuery, что вы ожидаете JSON, поскольку это противоречиво:)
dataType: 'jsonp'
.источник
Если ваш прокси-сервер или контейнер добавляет следующий заголовок при обслуживании файла .js, это заставит некоторые браузеры, такие как Chrome, выполнять строгую проверку типов MIME:
Удалите этот заголовок, чтобы Chrome не выполнял проверку MIME.
источник
X-Content-Type-Options: nosniff
заголовок) - хороший вариант для предотвращения атак с перехватом контента.К вашему сведению, у меня такая же ошибка с консоли Chrome. Я думал, что это вызвано моей функцией AJAX, но я раскомментировал свой уменьшенный скрипт от
/javascripts/ajax-vanilla.min.js
до/javascripts/ajax-vanilla.js
. Но на самом деле исходный файл был на/javascripts/src/ajax-vanilla.js
. Таким образом, в Chrome вы получаете ошибку MIME-типа, даже если файл не найден. В этом случае сообщение об ошибке описывается какtext/plain
неверный MIME-тип.источник
Я столкнулся с этой ошибкой, используя IIS 7.0 с пользовательской страницей ошибки 404, хотя я подозреваю, что это произойдет с любой страницей 404. Сервер возвратил ответ html 404 с типом mime text / html, который не мог (правильно) быть выполнен.
источник
Для пользователей записей и поиска в Google : если вы являетесь разработчиком .NET Core, вам следует установить типы контента вручную, поскольку их значение по умолчанию равно нулю или пусто:
источник
В моем случае я использую
сделать запрос (к API Flickr), и я получил ту же ошибку MIME. Как и предложенный выше ответ, добавьте следующий код:
Исправлена проблема, и я больше не вижу ошибку типа MIME в консоли Chrome.
источник
если приложение размещено в IIS, убедитесь, что установлено статическое содержимое. Панель управления> Программы> Включить или выключить функции Windows> Службы IIS> Службы World Wide Web> Общие функции HTTP> Статическое содержимое.
Я столкнулся с этой проблемой при попытке запустить существующее приложение на новой установке IIS 10.0
источник