Siempre he tratado de evitar usar la mayoría de las propiedades del protocolo HTTP por miedo a lo desconocido.
Sin embargo, me dije a mí mismo que hoy voy a enfrentar el miedo y comenzar a usar encabezados a propósito. He estado tratando de enviar json
datos al navegador y usarlos de inmediato. Por ejemplo, si tengo una función de controlador Ajax en estado listo 4 que se ve así:
function ajaxHandler(response){
alert(response.text);
}
Y he configurado el encabezado de tipo de contenido en mi código PHP:
header('Content-Type: application/json');
echo json_encode(array('text' => 'omrele'));
¿Por qué no puedo acceder directamente a la propiedad desde la función de controlador, cuando se le dice claramente al navegador que los datos entrantes son application/json
?
JSON.parse()
. Podría tomar alguna acción diferente o forzar un error si aparece el tipo de contenido incorrecto.
response.text
lo que sigue siendo una cadena.
text
como una variable de JavaScript en el controlador y no responder? Esa sería una funcionalidad muy extraña. Json_encode también crea 1 objeto a partir de su matriz PHP. Entonces, cuando obtienes esto en javascript, debe asignarse a una variable.