Я разработал приложение, используя Servlet + JQuery и javascript в браузере Google Chrome. При тестировании с Mozilla Firefox возникают проблемы в методах GET:
$.get('/Aplication/ServletApp', function(ret) {
//other codes here`
}
В консольной ошибке Firebug я вижу:
Syntax error
http://localhost:8080/Aplication/ServletApp
["{\"requisicaoID\":0,\"id\":1292,\"detalhesResumido\":\"\",\"idUsuario\":0,\"dataHoraInsercao\":\"2011-10-18 09:09:52.453\",\"resumoURL\":\"\",\"requisicao\":false,\"nomeProduto\":\"tttt\",\"detalhes\":\"\",\"imagemModel\": ...
Полный JSON:
["{\"requisicaoID\":0,\"dataHoraInsercao\":\"2011-11-11 15:42:56.577\",\"resumoURL\":\"\",\"usuarioFBID\":0,\"requisicao\":false,\"detalhes\":\"\",\"imagemModel\":{\"urlImagem\":null,\"pathImagemLocal\":null,\"imagemFinal\":null},\"dataHoraFormatada\":\"11/11/2011 15:42\",\"usuarioPresenteModel\":null,\"id\":1790,\"idUsuario\":0,\"detalhesResumido\":\"\",\"nomeProduto\":\"celular motorola\",\"URL\":\"\"}","{\"requisicaoID\":0,\"dataHoraInsercao\":\"2011-11-11 15:43:14.077\",\"resumoURL\":\"\",\"usuarioFBID\":0,\"requisicao\":false,\"detalhes\":\"\",\"imagemModel\":{\"urlImagem\":null,\"pathImagemLocal\":null,\"imagemFinal\":null},\"dataHoraFormatada\":\"11/11/2011 15:43\",\"usuarioPresenteModel\":null,\"id\":1791,\"idUsuario\":0,\"detalhesResumido\":\"\",\"nomeProduto\":\"notebook dell\",\"URL\":\"\"}","{\"requisicaoID\":0,\"dataHoraInsercao\":\"2011-11-11 15:43:51.42\",\"resumoURL\":\"www.americanas.com.br/produto/7394187 ...\",\"usuarioFBID\":0,\"requisicao\":false,\"detalhes\":\"DVD Player Automotivo CED229X - Tela 3'', Entrada USB Frontal, Entrada SD Flip Down e Controle Remoto - Philips, Para quem é obcecado por som automotivo e gosta de curtir músicas e vídeos ao vivo em seu carro, chegou o CED229X da Phillips! Este sistema também dispõ...\",\"imagemModel\":{\"urlImagem\":\"http://img.americanas.com.br/produtos/01/02/item/7394/1/7394187_1GG.jpg\",\"pathImagemLocal\":\"1792.jpeg\",\"imagemFinal\":\"/wishlistfb/Desejos?img=1792.jpeg\"},\"dataHoraFormatada\":\"11/11/2011 15:43\",\"usuarioPresenteModel\":null,\"id\":1792,\"idUsuario\":0,\"detalhesResumido\":\"DVD Player Automotivo CED229X - Tela 3'', Entrada USB Frontal, Entrada SD Flip Down e Controle Remoto - Philips, Para quem é obcecado por som automotivo e gosta de curtir músicas e vídeos ao vivo em seu carro, chegou o CED229X da Phillips! Este sistema também dispõ...\",\"nomeProduto\":\"DVD Player Automotivo CED229X - Tela 3'', Entrada USB Frontal, Entrada SD Flip Down e Controle Remot ...\",\"URL\":\"http://www.americanas.com.br/produto/7394187/automotivo/dvdplayerautomotivo/dvdplayer/dvd-player-automotivo-ced229x-tela-3-entrada-usb-frontal-entrada-sd-flip-down-e-controle-remoto-philips\"}","{\"requisicaoID\":0,\"dataHoraInsercao\":\"2011-11-11 15:44:05.373\",\"resumoURL\":\"www.americanas.com.br/produto/7393694 ...\",\"usuarioFBID\":0,\"requisicao\":false,\"detalhes\":\"Kit X Line com 34 Peças para Furadeira - Bosch, Um super jogo composto de acessórios indispensáveis para os seus trabalhos em casa. Toda praticidade que você precisa, para ter em casa ou levar para onde precisa...\",\"imagemModel\":{\"urlImagem\":\"http://img.americanas.com.br/produtos/01/02/item/7480/2/7480235P1.jpg\",\"pathImagemLocal\":\"1793.jpeg\",\"imagemFinal\":\"/wishlistfb/Desejos?img=1793.jpeg\"},\"dataHoraFormatada\":\"11/11/2011 15:44\",\"usuarioPresenteModel\":null,\"id\":1793,\"idUsuario\":0,\"detalhesResumido\":\"Kit X Line com 34 Peças para Furadeira - Bosch, Um super jogo composto de acessórios indispensáveis para os seus trabalhos em casa. Toda praticidade que você precisa, para ter em casa ou levar para onde precisa...\",\"nomeProduto\":\"Kit X Line com 34 Peças para Furadeira - Bosch - Bosch - Americanas.com.br\",\"URL\":\"http://www.americanas.com.br/produto/7393694/ferramentasejardim/ferramentaseletricas/furadeiras/kit-x-line-com-34-pecas-para-furadeira-bosch\"}"]
Но когда я тестирую JSON в http://jsonlint.com/, я получаю VALID JSON-ответ.
Chrome работает отлично, но Firefox выдает ошибку «синтаксическая ошибка».
РЕДАКТИРОВАНИЕ:
На стороне сервера (сервлет) я делаю следующее:
JSONArray jSONArray = new JSONArray();
Writer out = httpServletResponse.getWriter();
List<Model> lstData = new ArrayList<Model>();
for (Object object : lstData ) {
jSONArray.put(object);
}
out.write(jSONArray.toString());
out.close();
Метод toString () класса Model:
public String toString(){
return new JSONObject(this).toString();
}
На стороне клиента я делаю следующее:
var = myModel;
$.getJSON('/Aplication/ServletApp', function(ret) {
$.each(ret, function(k, v) {
myModel = $.parseJSON(v);
}
}
С этим изменением данные появляются на экране, но все равно возникает синтаксическая ошибка.