Aujourd'hui, j'ai rencontré le code suivant dans M_Controller, j'ai donc appris un peu sur la façon de juger la différence entre la requête ajax, la requête de publication et la fonction REQUEST_TIME et time(). La méthode
define('IS_AJAX', $this->input->is_ajax_request()); define('IS_POST', $_SERVER['REQUEST_METHOD'] == 'POST' && count($_POST) ? TRUE : FALSE); define('SYS_TIME', $_SERVER['REQUEST_TIME'] ? $_SERVER['REQUEST_TIME'] : time());
is_ajax_request()
est une méthode en CI pour déterminer si une requête ajax est faite. Le document officiel l'explique comme suit : Vérifiez si l'en-tête du serveur contient HTTP_X_REQUESTED_WITH
, et renvoyez TRUE si c'est le cas, sinon, retournez FALSE.
Bien sûr, un tel jugement n'est pas parfait. Le principe impliqué dans le jugement est le suivant :
Lorsque nous envoyons une requête ajax via jquery, un en-tête ajax nommé X- Informations demandées avec, le contenu par défaut des informations est : XMLHttpRequest, qui constitue la base du framework CI pour juger les requêtes ajax.
Mais comment juger quand nous utilisons du js natif ?
xmlHttpRequest.setRequestHeader("request_type","ajax");
Selon l'objet XMLHttpRequest, définissez manuellement l'en-tête Une fois les paramètres ci-dessus terminés, nous pouvons l'obtenir dans le code logique PHP comme suit :
$_SERVER['HTTP_REQUEST_TYPE']
Évidemment, le r que nous avons défini. dans l'en-têteequest_type
Lors de l'obtention en arrière-plan, ajoutez la chaîne de préfixe HTTP_ pour obtenir les informations d'en-tête envoyées par la réception, c'est-à-dire en appelant $_SERVER['HTTP_REQUEST_TYPE']
pour obtenir la valeur transmise par la réception : ajax Of. Bien sûr, request_type peut également être défini sur d'autres champs.
Le contenu ci-dessus est à titre de référence uniquement !
Tutoriel recommandé : Tutoriel vidéo PHP
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!