jquery Parsererror em $.ajaxSetup()
-
12-11-2019 - |
Pergunta
Atualmente estou trabalhando em um programa em jquery.Meu programa funciona bem no Firefox 3.5, mas não até que eu atualizei meu navegador para o Firefox 4.0.Desde então, o 'parsererror' nunca deixou de aparecer e me dá uma forte dor de cabeça.
Percebi que esta é a parte do meu código que o FIRST 'parsererror' mostra:
$(document).ready( function() {
...
$.ajaxSetup({
timeout: 10000,
error: function(xhr, msg, e) {
showMessage('HTTP error: ' + JSON.stringify(msg) + '.'); //this is the parsererror
}
});
.
.
})
E não só isso, minha aba dinâmica não aparece mais na minha página.Percebo que toda vez que se remover esta linha '<script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
', parece, mas meu outro elemento jquery não é bom.Eu não sei o que está errado.Talvez seja algum tipo de problema de incompatibilidade, mas não sei por onde começar a consertar.Por favor ajude.
EDITAR:este é o json que ele retornou.Supostamente, isso é para o meu menu dinâmico que criará a guia Cada menu em que você clicou.Mas isso não aparece.
[
{"title": "File","submenus":[
{"title": "Open","submenus":[]},
{ "title": "New", "submenus":[]},
{ "title": "Save as", "submenus":[]},
{ "title": "Save", "submenus":[]}
]},
{ "title": "View","submenus":[]},
{ "title": "viewAll", "submenus":[]},
{ "title": "Close","submenus":[]},
{"title":"jQgrid", "submenus":[]}
]
Solução
Descrição do erro do jQuery Ajax documentação
erro (jqXHR, textStatus, errorThrown)
Função
Uma função a ser chamada se a solicitação falhar.A função recebe três argumentos:O objeto JQXHR (em jQuery 1.4.x, xmlHttPrequest), uma sequência que descreve o tipo de erro que ocorreu e um objeto de exceção opcional, se ocorreu.Valores possíveis para o segundo argumento (além de nulo) são "tempo limite", "erro", "abortar" e "parserror".Quando ocorre um erro HTTP, a infrator a parte textual do status HTTP, como "não encontrado" ou "erro interno do servidor". Até o jQuery 1.5, a configuração de erro pode aceitar uma matriz de funções.Cada função será chamada por sua vez.Observação:Este manipulador não é chamado para solicitações de script de domínio cruzado e JSONP.Este é um evento Ajax
No seu código você tem
JSON.stringify(msg)
Olhando a documentação do jQuery, você verá que o segundo argumento é uma string e não um objeto JSON como você esperava que fosse.O analisador está vendo a string e gera o erro de análise que você está vendo.
Agora, se estiver ocorrendo um erro e o objeto estiver dizendo que há um erro.JSON exige que o nome tenha aspas duplas.Então as pessoas pensam:
{
foo : "bar",
color : "red",
num : 1
}
é JSON válido, mas não é.O seguinte é válido.
{
"foo" : "bar",
"color" : "red",
"num" : 1
}
Outras dicas
Parece que o código acima funciona perfeitamente - está dizendo que o XMLHttpRequest retornou um erro com a mensagem "parsererror"
.Você provavelmente poderia aprender mais sobre isso inspecionando o e
variável em sua função de erro.Mas o código que você forneceu não está causando o erro, então não há como depurá-lo.