国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Maison cadre php PensezPHP Analyse des raisons et solutions du rapport d'erreurs du formulaire de soumission thinkPHP5

Analyse des raisons et solutions du rapport d'erreurs du formulaire de soumission thinkPHP5

Apr 11, 2023 pm 04:10 PM

ThinkPHP5 est un framework d'application web open source basé sur PHP. Son concept de conception est simple, intuitif et flexible. Cependant, vous pouvez rencontrer des problèmes et des erreurs lors du développement à l'aide du framework ThinkPHP5. Parmi eux, les erreurs lors de la soumission des formulaires sont l’un des problèmes courants. Cet article présentera les raisons et les solutions aux erreurs dans le formulaire de soumission ThinkPHP5.

1. Cause de l'erreur

Dans ThinkPHP5, vous pouvez utiliser la méthode post pour soumettre les données du formulaire, ou vous pouvez utiliser d'autres méthodes telles que put et delete. Cependant, lors de la soumission des données du formulaire, un message d'erreur appara?t parfois : ? Cette méthode HTTP n'est pas autorisée à être soumise ?, comme le montre la figure ci-dessous.

La raison de ce message d'erreur est que le navigateur utilise un mécanisme de pré-vérification appelé "OPTIONS". Lors de la soumission de données à l'aide de méthodes de requête non simples telles que POST et PUT, le navigateur enverra d'abord une requête OPTIONS pour déterminer si le serveur prend en charge cette méthode de requête. Si le serveur ne le prend pas en charge, le message d'erreur ci-dessus appara?tra.

2. Solution

  1. Activer la prise en charge inter-domaines

Tout d'abord, comprenons ce qu'est le multi-domaine. Cross-domain fait référence à l'exécution du code JavaScript d'un nom de domaine sur une page Web d'un autre nom de domaine. à proprement parler, tant que le protocole, le nom de domaine et le port sont différents, ils seront considérés comme des domaines différents et des problèmes inter-domaines surviendront. Lors de la soumission des données du formulaire, l'erreur ci-dessus peut se produire en raison de problèmes inter-domaines.

La solution consiste à activer la prise en charge inter-domaines c?té serveur. Dans ThinkPHP5, vous pouvez ajouter le code suivant au fichier de configuration config.php :

//?開啟跨域支持
'cross_domain'???=>?[
????'allow_origin'?=>?['*'],
????'allow_methods'?=>?['POST','GET','OPTIONS','PUT','DELETE'],
????'allow_headers'?=>?['*'],
????'expose_headers'=>?['token'],
????'max_age'???????=>?3600,
????'allow_credentials'?=>?true,
],

Parmi eux, le paramètre allow_origin spécifie les noms de domaine autorisés, et signifie que tous les noms de domaine sont autorisés. Le paramètre allow_methods spécifie les méthodes de requête autorisées. Les méthodes de requête non simples telles que PUT et DELETE doivent également être ajoutées. Le paramètre allow_headers spécifie les informations d'en-tête de requête autorisées, signifie accepter n'importe quel en-tête de requête. Le paramètre expose_headers spécifie les informations supplémentaires que les utilisateurs sont autorisés à obtenir, et token indique que les informations de jeton peuvent être obtenues. Le paramètre max_age spécifie la durée autorisée pour la mise en cache, en secondes. Le paramètre allow_credentials indique que les informations d'identification telles que les cookies peuvent être utilisées.

  1. Modifiez la méthode de demande

Si vous ne souhaitez pas activer la prise en charge inter-domaines, vous pouvez également résoudre le problème en modifiant la méthode de demande. Lors de la soumission des données du formulaire, vous pouvez modifier la méthode de requête en POST, afin d'éviter les problèmes de pré-vérification du navigateur.

En HTML, vous pouvez modifier l'attribut méthode du formulaire comme ceci :

<form method="POST">

En JavaScript, vous pouvez modifier l'attribut type de la requête ajax comme ceci :

$.ajax({
????type:?'POST',
????url:?'http://example.com/path/to/api',
????data:?postData,
????success:?function(data)?{
????????console.log(data);
????}
});
  1. Modifier la configuration nginx

Si cela se produit lorsque utiliser Nginx comme serveur Web Pour l'erreur ci-dessus, vous pouvez ajouter la configuration suivante dans le fichier nginx.conf :

location?/?{
????if?($request_method?=?'OPTIONS')?{
????????add_header?'Access-Control-Allow-Origin'?'*';
????????add_header?'Access-Control-Allow-Methods'?'POST,GET,OPTIONS';
????????add_header?'Access-Control-Allow-Headers'?'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,token';
????????add_header?'Access-Control-Max-Age'?1728000;
????????add_header?'Content-Type'?'text/plain?charset=UTF-8';
????????add_header?'Content-Length'?0;
????????return?204;
????}
????...
}

Parmi eux, Access-Control-Allow-Origin, Access-Control-Allow-Methods, Access-Control- Allow-Headers, Access-Control-Max-Age La signification des paramètres égaux est la même que celle expliquée ci-dessus.

Résumé

Les erreurs lors de la soumission des données du formulaire sont un problème courant, qui peut être difficile à résoudre pour les débutants. Cet article présente les raisons et les solutions aux erreurs lors de la soumission de formulaires, dans l'espoir d'aider les lecteurs à mieux utiliser le framework ThinkPHP5.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefa?on, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1502
276