Tengo un problema extraño cuando intento escribir una página PHP que devuelve algo de JSON a una llamada Jquery AJAX. Los problemas son que a pesar de establecer el tipo de contenido en application/json, la respuesta siempre parece incluir el encabezado HTML.Respuesta PHP JSON contiene encabezados HTML
Aquí está el código PHP:
// some code that generates an array
header("Content-type: application/json");
echo json_encode($return);
Luego, en Javascript:
$.ajax({
url: '/VAPHP/services/datatable.php',
dataType: 'json',
data:
{
type: 'invoices'
},
success: function(data)
{
// show a message saying it's been sent!
alert('Success!');
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert('Error!');
}
});
La respuesta siempre parece ser algo como esto:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
{"aaData":[["2007-08-01","91109507","Invoice","10.000000","AUD"],["2007-08-02","91110103","Invoice","5.000000","AUD"],["2007-08-02","91110122","Invoice","305.000000","AUD"],["2007-08-02","91110129","Invoice","320.000000","AUD"],["2007-08-03","91111146","Credit
for Returns","10.000000","AUD"],["2007-08-06","91111895","Credit
for Returns","320.000000","AUD"],["2007-09-03","91128486","Credit
Memo","5.000000","AUD"],["2007-09-03","91128487","Credit
etc, etc
Y de acuerdo a la cabecera de respuesta Ciertamente cree que es JSON:
HTTP/1.1 200 OK
Content-Type: application/json
Server: Microsoft-IIS/7.5
X-Powered-By: PHP/5.3.3
Cada vez que ejecuto el código y alerta "¡Error!" se dispara cada vez, lo que es comprensible ... ¿Alguien tiene alguna idea de por qué el HTML se está incluyendo en la respuesta?
¿Cómo se inspecciona la respuesta? –
Probablemente su aplicación lo haga en cualquier otro lugar, y como tiene habilitado el almacenamiento en búfer de salida, no obtiene el error de "encabezados ya enviados". – Mchl
¿Está utilizando un marco o es un archivo PHP independiente? –