title: Random error "Unexpected token in JSON"
body: <p>I'm using AngularJS to develop a website, and I'm doing multiple selects in an API to list similar products, but I'm having troubles to list the items because in some cases, randomly, JSON returns: <em>SyntaxError: Unexpected token  in JSON at position 2512</em>. The code I have is:</p>
  
  <pre><code>$timeout(function() {
              console.log(id_filtroParecido);
              Conecta('get','getProdutosFiltrados', id_filtroParecido).then(function(val) {
                  vm.respostaListaParecidos = val;
              });
          }, 100);
  </code></pre>
  
  <p>In the above code, the function Conecta make a search in the DB and returns a JSON. But its unpredictable as in it works sometimes, but fails other times.</p>
  
  <p>Here an example of the JSON i receive and works fine:</p>
  
  <pre><code>[{"id_produto":"1","nome_produto":"Epson Impressora 1","ativo_produto":"1","destaque_produto":"1","sob_encomenda_produto":"1","marcadagua_produto":"0","descricao_produto":"&lt;p&gt;Descri&amp;ccedil;&amp;atilde;o da impressora Epson 1&lt;/p&gt;","informacao_produto":"&lt;p&gt;Impressora a Raio Lazer&lt;/p&gt;","tags_produto":"Impressora, Lazer, Epson","ordem":"1","acessos":"0","marca_produto":"","slug_produto":"1-epson-impressora-1","imagem_principal":"288738cdb4b99c10e877a25089d46074.jpeg","tamanho":[{"id_produto_tamanho":"43","nome_produto_tamanho":"7- Padr\u00e3o","valor_produto_tamanho":"1500.00","quantidade_produto_tamanho":"200","comprimento_produto_tamanho":"16","altura_produto_tamanho":"16","largura_produto_tamanho":"16","peso_produto_tamanho":"16","promocao_valor_produto_tamanho":"0.00","parcelamento_produto_tamanho":"N\u00e3o","tem_promocao_produto_tamanho":"0"}]},{"id_produto":"2","nome_produto":"Impressora Epson 2","ativo_produto":"1","destaque_produto":"0","sob_encomenda_produto":"0","marcadagua_produto":"0","descricao_produto":"&lt;p&gt;Descri&amp;ccedil;&amp;atilde;o da impressora Epson 2&lt;/p&gt;","informacao_produto":"&lt;p&gt;Informa&amp;ccedil;&amp;otilde;es t&amp;eacute;cnicas da impressora Epson 2&lt;/p&gt;","tags_produto":"","ordem":"1","acessos":"0","marca_produto":"","slug_produto":"2-impressora-epson-2","imagem_principal":"c38bf5d110a03964740266c3ee43e123.jpeg","tamanho":[{"id_produto_tamanho":"42","nome_produto_tamanho":"5-\u00danico","valor_produto_tamanho":"500.00","quantidade_produto_tamanho":"199","comprimento_produto_tamanho":"16","altura_produto_tamanho":"16","largura_produto_tamanho":"16","peso_produto_tamanho":"16","promocao_valor_produto_tamanho":"0.00","parcelamento_produto_tamanho":"Sim","tem_promocao_produto_tamanho":"0"}]}]
  </code></pre>
  
  <p>Here an example of JSON that sometimes return error, sometimes dont: </p>
  
  <pre><code>[{"id_produto":"6","nome_produto":"HP G42-214BR","ativo_produto":"1","destaque_produto":"1","sob_encomenda_produto":"0","marcadagua_produto":"0","descricao_produto":"&lt;p&gt;Descri&amp;ccedil;&amp;atilde;o do note HP&lt;/p&gt;","informacao_produto":"&lt;p&gt;Informa&amp;ccedil;&amp;otilde;es do note JP&lt;/p&gt;","tags_produto":"tag1, tag2, tag3","ordem":"1","acessos":"0","marca_produto":"","slug_produto":"6-hp-g42-214br","imagem_principal":"87c2ee41b5b8fc13db9a3c2db655667b.png","tamanho":[{"id_produto_tamanho":"54","nome_produto_tamanho":"1- Padr\u00e3o","valor_produto_tamanho":"1500.00","quantidade_produto_tamanho":"352","comprimento_produto_tamanho":"16","altura_produto_tamanho":"16","largura_produto_tamanho":"16","peso_produto_tamanho":"9","promocao_valor_produto_tamanho":"0.00","parcelamento_produto_tamanho":"Ou em 10x de R$150.00","tem_promocao_produto_tamanho":"0"}]},{"id_produto":"1","nome_produto":"Epson Impressora 1","ativo_produto":"1","destaque_produto":"1","sob_encomenda_produto":"1","marcadagua_produto":"0","descricao_produto":"&lt;p&gt;Descri&amp;ccedil;&amp;atilde;o da impressora Epson 1&lt;/p&gt;","informacao_produto":"&lt;p&gt;Impressora a Raio Lazer&lt;/p&gt;","tags_produto":"Impressora, Lazer, Epson","ordem":"1","acessos":"0","marca_produto":"","slug_produto":"1-epson-impressora-1","imagem_principal":"288738cdb4b99c10e877a25089d46074.jpeg","tamanho":[{"id_produto_tamanho":"43","nome_produto_tamanho":"7- Padr\u00e3o","valor_produto_tamanho":"1500.00","quantidade_produto_tamanho":"200","comprimento_produto_tamanho":"16","altura_produto_tamanho":"16","largura_produto_tamanho":"16","peso_produto_tamanho":"16","promocao_valor_produto_tamanho":"0.00","parcelamento_produto_tamanho":"N\u00e3o","tem_promocao_produto_tamanho":"0"}]},{"id_produto":"2","nome_produto":"Impressora Epson 2","ativo_produto":"1","destaque_produto":"0","sob_encomenda_produto":"0","marcadagua_produto":"0","descricao_produto":"&lt;p&gt;Descri&amp;ccedil;&amp;atilde;o da impressora Epson 2&lt;/p&gt;","informacao_produto":"&lt;p&gt;Informa&amp;ccedil;&amp;otilde;es t&amp;eacute;cnicas da impressora Epson 2&lt;/p&gt;","tags_produto":"","ordem":"1","acessos":"0","marca_produto":"","slug_produto":"2-impressora-epson-2","imagem_principal":"c38bf5d110a03964740266c3ee43e123.jpeg","tamanho":[{"id_produto_tamanho":"42","nome_produto_tamanho":"5-\u00danico","valor_produto_tamanho":"500.00","quantidade_produto_tamanho":"199","comprimento_produto_tamanho":"16","altura_produto_tamanho":"16","largura_produto_tamanho":"16","peso_produto_tamanho":"16","promocao_valor_produto_tamanho":"0.00","parcelamento_produto_tamanho":"Sim","tem_promocao_produto_tamanho":"0"}]}]
  </code></pre>
  
  <p>And gere an example of JSON that always return error:</p>
  
  <pre><code>[{"id_produto":"1","nome_produto":"Epson Impressora 1","ativo_produto":"1","destaque_produto":"1","sob_encomenda_produto":"1","marcadagua_produto":"0","descricao_produto":"&lt;p&gt;Descri&amp;ccedil;&amp;atilde;o da impressora Epson 1&lt;/p&gt;","informacao_produto":"&lt;p&gt;Impressora a Raio Lazer&lt;/p&gt;","tags_produto":"Impressora, Lazer, Epson","ordem":"1","acessos":"0","marca_produto":"","slug_produto":"1-epson-impressora-1","imagem_principal":"288738cdb4b99c10e877a25089d46074.jpeg","tamanho":[{"id_produto_tamanho":"43","nome_produto_tamanho":"7- Padr\u00e3o","valor_produto_tamanho":"1500.00","quantidade_produto_tamanho":"200","comprimento_produto_tamanho":"16","altura_produto_tamanho":"16","largura_produto_tamanho":"16","peso_produto_tamanho":"16","promocao_valor_produto_tamanho":"0.00","parcelamento_produto_tamanho":"N\u00e3o","tem_promocao_produto_tamanho":"0"}]},{"id_produto":"2","nome_produto":"Impressora Epson 2","ativo_produto":"1","destaque_produto":"0","sob_encomenda_produto":"0","marcadagua_produto":"0","descricao_produto":"&lt;p&gt;Descri&amp;ccedil;&amp;atilde;o da impressora Epson 2&lt;/p&gt;","informacao_produto":"&lt;p&gt;Informa&amp;ccedil;&amp;otilde;es t&amp;eacute;cnicas da impressora Epson 2&lt;/p&gt;","tags_produto":"","ordem":"1","acessos":"0","marca_produto":"","slug_produto":"2-impressora-epson-2","imagem_principal":"c38bf5d110a03964740266c3ee43e123.jpeg","tamanho":[{"id_produto_tamanho":"42","nome_produto_tamanho":"5-\u00danico","valor_produto_tamanho":"500.00","quantidade_produto_tamanho":"199","comprimento_produto_tamanho":"16","altura_produto_tamanho":"16","largura_produto_tamanho":"16","peso_produto_tamanho":"16","promocao_valor_produto_tamanho":"0.00","parcelamento_produto_tamanho":"Sim","tem_promocao_produto_tamanho":"0"}]}]
  </code></pre>
  
  <p>Obs: I use de same products here, but it is independent of what product is returning</p>
  
  <p>Here my factory code that i use to conect Angular with the PHP:</p>
  
  <pre><code>.factory('Conecta', ['$timeout','$q','AppService', function(time, q, Service) {
          return function(acao,api,parametro){
              var deferred = q.defer(); 
              switch(acao) {
                  case 'get':
                      Service.apiGET(api,parametro).then(function(response) {      
                          if(response.status == 200){
                              deferred.resolve(response.data);
                          }else{
                              deferred.resolve(null);
                          }
                      }, function (error) {
                          console.error(error);
                      });
                      break;
                  default:
                  break;
              }          
              return deferred.promise;                
          };
      }])
  </code></pre>