Position actuelle: Accueil> Derniers articles> Utilisez en-tête () pour définir la posture correcte de l'en-tête de réponse JSON

Utilisez en-tête () pour définir la posture correcte de l'en-tête de réponse JSON

M66 2025-05-28

Lors du développement d'applications Web, le format JSON est largement utilisé dans l'échange de données entre les clients et les serveurs. Pour gérer correctement les réponses JSON, PHP fournit la fonction d'en-tête () pour définir les informations d'en-tête de réponse. Cet article expliquera comment utiliser la fonction d'en-tête () pour définir correctement l'en-tête de réponse JSON.

Quelle est la fonction d'en-tête ()?

La fonction d'en-tête () de PHP est utilisée pour envoyer des informations d'en-tête de réponse HTTP brutes au client. En définissant l'en-tête de réponse correct, le serveur indique au navigateur ou au client le type de ressource demandée afin de gérer correctement le contenu de réponse. Surtout lorsque nous renvoyons les données JSON, il est très important de définir le type de contenu sur Application / JSON .

Pourquoi définir le type de contenu sur Application / JSON?

Par défaut, PHP ne définit pas le type de contenu de réponse. Si nous renvoyons les données JSON, le navigateur ou le client peut ne pas être en mesure de les analyser correctement. Par conséquent, nous devons dire explicitement au client que nous renvoyons les données JSON. En définissant le type de contenu sur Application / JSON , nous nous assurons que le client peut gérer correctement la réponse et le traiter comme un format JSON.

Comment définir l'en-tête de réponse JSON à l'aide de la fonction en-tête ()?

Afin de renvoyer correctement les données JSON, nous devons effectuer les étapes suivantes:

  1. Envoyer l'en-tête de réponse de type contenu correct

  2. Assurez-vous qu'il n'y a pas d'autres sorties

  3. Sortir les données JSON

Ce qui suit est un exemple simple indiquant comment définir correctement l'en-tête de réponse JSON dans PHP et renvoyer les données JSON.

 <?php
// installation Content-Type pour application/json
header('Content-Type: application/json');

// Simuler certaines données
$data = array(
    'status' => 'success',
    'message' => 'Les données ont été traitées avec succès',
    'url' => 'https://m66.net/success'
);

// 将数据转换pour JSON Format
echo json_encode($data);
?>

Analyse de code

  1. En-tête ('Content-Type: Application / JSON');
    Cette ligne de code est la plus importante, elle indique au navigateur ou au client que le type de contenu de la réponse est JSON. Cela permet au client d'analyser correctement les données renvoyées.

  2. $ data = array (...)
    Ici, nous construisons un tableau simple comme les données que nous voulons retourner. Dans le développement réel, vous interrogez généralement les données à partir d'une base de données ou obtenez des données d'une API externe et faites-les formater en JSON.

  3. json_encode ($ data);
    Cette fonction convertit les tableaux ou objets PHP au format JSON. Notez que JSON_ENCODE () traite automatiquement les caractères spéciaux dans le tableau, tels que des devis ou des barreaux de barreaux, pour s'assurer que les données JSON générées sont conformes à la spécification.

Choses à noter

  • Ne sortez rien avant d'envoyer l'en-tête <br> PHP ne peut pas avoir de sortie (par exemple, des espaces, des balises HTML ou des messages d'erreur) avant d'appeler la fonction d'en-tête () . S'il y a une sortie avant d'appeler Header () , PHP rapportera une erreur: Impossible de modifier les informations d'en-tête - les en-têtes déjà envoyées .

  • Assurez-vous que les en-têtes de réponse sont dans le bon ordre <br> L'en-tête de réponse doit être envoyé avant toute autre sortie. Si la sortie HTML ou une autre sortie de contenu est effectuée après avoir envoyé l'en-tête de réponse JSON, le navigateur ne pourra pas analyser correctement les données JSON.

  • Problème d'encodage de caractère des données JSON <br> Si vous avez besoin de retourner des données JSON contenant des caractères non ASCII, assurez-vous d'utiliser l'indicateur JSON_UNESCAPED_UNICODE dans JSON_ENCODE () , afin que les caractères chinois puissent être évités en codage Unicode.

 echo json_encode($data, JSON_UNESCAPED_UNICODE);

Exemples complets

Voici un exemple complet de toutes les meilleures pratiques:

 <?php
// Empêcher toute sortie
ob_start();

// installation响应头pour JSON Format
header('Content-Type: application/json');

// installation其他头部信息(Si les demandes de domaine transversal sont autorisées)
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST');

// Simuler les données obtenues à partir d&#39;une base de données ou ailleurs
$data = array(
    'status' => 'error',
    'message' => 'Une erreur s&#39;est produite,Veuillez réessayer plus tard',
    'url' => 'https://m66.net/error'
);

// 将数据转换pour JSON Format并输出
echo json_encode($data, JSON_UNESCAPED_UNICODE);

// Script final,Assurez-vous qu&#39;il n&#39;y a pas d&#39;autres sorties
ob_end_flush();
?>

Résumer

En PHP, il est très facile de configurer des en-têtes de réponse JSON à l'aide de la fonction en-tête () . En définissant le contenu-type: Application / JSON , vous pouvez vous assurer que le client traite et analyse correctement les données JSON renvoyées. N'oubliez pas, avant de définir l'en-tête de réponse, assurez-vous qu'il n'y a pas d'autre sortie afin que les erreurs puissent être évitées.

J'espère que cet article vous aidera à mieux comprendre comment gérer les réponses JSON à l'aide de PHP. Si vous avez des questions, n'hésitez pas à demander!