Tab e pré enrolado em torno da saída JSON no Chrome

Estou usando este código simples para imprimir uma matriz como uma estrutura JSON.

header('Content-Type: application/json'); echo json_encode($this->data, JSON_PRETTY_PRINT); 

Estou usando o Chrome Versão 28.0.1500.95 m. Por algum motivo estranho, a saída é envolvida em uma tag pré com um caractere de tabulação (ou seja, \t ) no início.

JSON parece estar analisando tudo bem, mas ainda consigo esse caractere de tabulação quando nenhum dado é enviado. Como posso consertar isso ?

 
 { "title": "Node", "items": [ { "label": "Do stuff", "icon": "..\/ui\/images\/icons\/16x16\/icon.png", "action": "dostuff" } ] }

Editar: Aqui está o código no lado jQuery:

 $.ajax({ url : "/myproject/getmenu/", type : 'GET', dataType: "json", success : function(data) { //alert(JSON.stringify(data,undefined,2)); if (jQuery.isEmptyObject(data)) { return; } title = data.title; items = data.items; selected.contextPopup({ title : title, items : items }); } }); 

    Você precisa remover qualquer código que adicione a tag

    
    

    . Isso faz com que sua resposta seja inválida. JSON (o espaço em branco para criar uma impressão não é um problema) e, assim, faz com que o jQuery falhe ao analisá-lo.

    Não consegui ver nada nos documentos do PHP sobre a resposta do JSON sendo envolvida em

    
    

    mas você certamente poderia tentar sem a bandeira. Gostaria também de verificar se a etiqueta está realmente em sua resposta. Se você usar a fonte de exibição e tiver uma extensão de navegador JSON-pretty-printing instalada, ela pode ser adicionada por essa extensão e não estar no JSON real manipulado pelo seu código JavaScript.

    Hmmm, eu estava procurando por uma resposta correta, mas nenhum deles trabalhou. Mas eu tentei fazer o seguinte e funcionou para mim …

    1- Eu configurei o tipo de conteúdo para application / json

    2- Eu usei o die(json_encode($this->data)) vez de echo json_encode($this->data)

    Espero que funcione para você, embora eu acho que é um pouco tarde demais: D me perdoe por responder a uma pergunta antiga Eu recentemente encontrei o mesmo problema eu mesmo