Uncaught SyntaxError: Ficha inesperada :
Estou executando uma chamada AJAX no meu script MooTools, isso funciona bem no Firefox, mas no Chrome estou recebendo um Uncaught SyntaxError': Ficha inesperada :
erro, não consigo determinar porquê. Comentando código para determinar onde está o código ruim não rende nada, estou pensando que pode ser um problema com o JSON sendo devolvido. Ao verificar no console vejo que o JSON retornado é o seguinte:
{"votes":47,"totalvotes":90}
Eu não'não vejo nenhum problema com isso, por que este erro ocorreria?
vote.each(function(e){
e.set('send', {
onRequest : function(){
spinner.show();
},
onComplete : function(){
spinner.hide();
},
onSuccess : function(resp){
var j = JSON.decode(resp);
if (!j) return false;
var restaurant = e.getParent('.restaurant');
restaurant.getElements('.votes')[0].set('html', j.votes + " vote(s)");
$$('#restaurants .restaurant').pop().set('html', "Total Votes: " + j.totalvotes);
buildRestaurantGraphs();
}
});
e.addEvent('submit', function(e){
e.stop();
this.send();
});
});
177
3
Apenas um FYI para pessoas que podem ter o mesmo problema -- eu apenas tive que fazer meu servidor enviar de volta o JSON como aplicação/json e o manipulador de jQuery padrão funcionou bem.
Isto acabou de acontecer comigo, e a razão não foi nenhuma das razões acima. Eu estava utilizando o comando jQuery getJSON e adicionando
callback=?
para utilizar JSONP (como eu precisava ir cross-domain), e retornando o código JSON{"foo":"bar"}
e recebendo o erro.Isto é porque eu deveria ter incluído os dados de retorno, algo como
jQuery1720931400557777471107_1335958194322({"foo":"bar"})
Aqui está o código PHP que eu usei para conseguir isso, que se degrada se o JSON (sem uma chamada de retorno) for utilizado:
Esperemos que isso ajude alguém no futuro.
Eu acabei de resolver o problema. Havia algo a causar problemas com uma chamada de pedido padrão, por isso este é o código que usei em seu lugar:
Se alguém sabe porque é que o objecto padrão do Request me estava a dar problemas, eu adoraria saber.