Não é possível receber JSON da chamada JQuery ajax
Pergunta
Determinei que meu JSON, vindo do servidor, é válido (fazendo a chamada ajax manualmente), mas gostaria muito de usar JQuery.Também determinei que a URL "post", enviada ao servidor, está correta, usando o firebug.No entanto, o retorno de chamada de erro ainda está sendo acionado (erro de análise).Eu também tentei o tipo de dados:texto.
Existem outras opções que devo incluir?
$(function() {
$("#submit").bind("click", function() {
$.ajax({
type: "post",
url: "http://myServer/cgi-bin/broker" ,
datatype: "json",
data: {'start' : start,'end' : end},
error: function(request,error){
alert(error);
},
success: function(request) {
alert(request.length);
}
}); // End ajax
}); // End bind
}); // End eventlistener
Solução
Aqui estão algumas sugestões que eu tentaria:
1) a opção 'datatype' que você especificou deve ser 'dataType' (diferencia maiúsculas de minúsculas, acredito)
2) tente usar a opção 'contentType' da seguinte forma:
contentType: "application/json; charset=utf-8"
Não tenho certeza do quanto isso ajudará, pois é usado na solicitação do URL da sua postagem, não na resposta.Veja este artigo para mais informações: http://encosia.com/2008/06/05/3-mistakes-to-avoid-when-using-jquery-with-aspnet-ajax(Está escrito para asp.net, mas pode ser aplicável)
3) Verifique três vezes a saída do URL da sua postagem e execute a saída por meio de um validador JSON apenas para ter certeza absoluta de que é válida e pode ser analisada em um objeto JSON. http://www.jsonlint.com
Espero que isso ajude!
Outras dicas
Por que myResult
em vez de request
?
success: function(request) {
alert(myResult.length);
}
O parâmetro de dados está errado.Aqui está um exemplo que funciona:
dados:{índice:ddl.selectedIndex },
Isso constrói um objeto com propriedade chamada índice com valor ddl.selectedIndex.
Você precisa remover as aspas da sua linha de parâmetro de dados
Boa sorte a