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":[]}  
 ]
Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top