Estou tentando acessar um script como JSON via AJAX, que funciona bem no Safari e em outros navegadores, mas infelizmente não será executado no Chrome. Está vindo com o seguinte erro:
Recusou-se a executar o script a partir de '*' porque seu tipo MIME ('application / json') não é executável e a verificação estrita do tipo MIME está ativada.
Aqui está o pedido:
$.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);
}
});
Alguém tem uma solução alternativa para isso?
javascript
jquery
ajax
json
google-chrome
Paul Nelligan
fonte
fonte
Respostas:
Ao incluir um argumento de retorno de chamada, você está dizendo ao jQuery que deseja fazer uma solicitação para JSONP usando um elemento de script em vez de uma solicitação para JSON usando XMLHttpRequest.
JSONP não é JSON. É um programa JavaScript.
Altere seu servidor para que ele produz o tipo MIME correto para JSONP, que é
application/javascript
.(Enquanto você está nisso, pare de dizer ao jQuery que você está esperando o JSON, pois isso é contraditório:)
dataType: 'jsonp'
.fonte
Se o seu servidor ou contêiner proxy adicionar o cabeçalho a seguir ao exibir o arquivo .js, ele forçará alguns navegadores, como o Chrome, a executar uma verificação rigorosa dos tipos MIME:
Remova este cabeçalho para impedir que o Chrome execute a verificação MIME.
fonte
X-Content-Type-Options: nosniff
cabeçalho) é uma boa opção para evitar ataques de detecção de conteúdo.Para sua informação, tenho o mesmo erro no console do Chrome. Eu pensei que minha função AJAX estava causando isso, mas descomentei meu script minificado de
/javascripts/ajax-vanilla.min.js
para/javascripts/ajax-vanilla.js
. Mas, na realidade, o arquivo de origem estava em/javascripts/src/ajax-vanilla.js
. Então, no Chrome, você está recebendo um erro de tipo MIME ruim, mesmo que o arquivo não possa ser encontrado. Nesse caso, a mensagem de erro é descrita comotext/plain
um tipo MIME inválido.fonte
Encontrei esse erro usando o IIS 7.0 com uma página de erro 404 personalizada, embora eu suspeite que isso ocorra com qualquer página 404. O servidor retornou uma resposta html 404 com um tipo de mime text / html que não pôde (corretamente) ser executado.
fonte
Para os usuários de registro e pesquisa do Google , se você é um desenvolvedor do .NET Core, defina os tipos de conteúdo manualmente, porque o valor padrão é nulo ou vazio:
fonte
No meu caso, eu uso
para fazer a solicitação (para a API do Flickr) e recebi o mesmo erro MIME. Como a resposta acima sugerida, adicione o seguinte código:
Corrigido o problema e não vejo mais o erro de tipo MIME no console do Chrome.
fonte
se o aplicativo estiver hospedado no IIS, verifique se o Conteúdo estático está instalado. Painel de controle> Programas> Ativar ou desativar recursos do Windows> Serviços de Informações da Internet> Serviços da World Wide Web> Recursos HTTP comuns> Conteúdo estático.
Eu enfrentei esse problema ao tentar executar um aplicativo existente em uma nova instalação do IIS 10.0
fonte