J'ai toujours essayé d'éviter d'utiliser la plupart des propriétés du protocole HTTP par peur de l'inconnu.
Cependant, je me suis dit que je vais affronter la peur aujourd'hui et commencer à utiliser les en-têtes à dessein. J'ai essayé d'envoyer des json
données au navigateur et de les utiliser immédiatement. Par exemple, si j'ai une fonction de gestionnaire Ajax sur l'état prêt 4 qui ressemble à ceci:
function ajaxHandler(response){
alert(response.text);
}
Et j'ai défini l'en-tête de type de contenu dans mon code PHP:
header('Content-Type: application/json');
echo json_encode(array('text' => 'omrele'));
Pourquoi ne puis-je pas accéder directement à la propriété à partir de la fonction de gestionnaire, alors que le navigateur est clairement informé que les données entrantes sont application/json
?
JSON.parse()
. Vous pouvez effectuer une action différente ou forcer une erreur si le type de contenu incorrect apparaît.
response.text
toujours une chaîne.
text
comme variable javascript dans le gestionnaire et non comme réponse? Ce serait une fonctionnalité très étrange. Le json_encode crée également 1 objet à partir de votre tableau PHP. Donc, lorsque vous obtenez cela en javascript, il doit être affecté à une variable.