Je suis essai pour envoyer un fichier (fichier de type d'entrée) sur PHP Server à l'aide d'Ajax. Le fichier est envoyé au contrôleur dans CodeDIGNITiter, mais je reçois 400 réponse (mauvaise demande). Comment puis-je résoudre ce problème?
Voici le code: p> Ce n'est pas un problème de chemin balnéaire lorsque je supprime le type: "POST" fonctionne, mais dans le contrôleur quand J'essaie d'afficher le nom du fichier que j'ai reçu un message d'erreur non défini Fichier d'index P> P>
5 Réponses :
à la place de la base URL Utilisez et maintenant p> supposant que vous avez activé site_url () code>
URL code> ALPER IN
config.php code> et vous avez un contrôleur
processus code> avec
index code> méthode p> p> p> p> P> P> >
Ce n'est pas un problème de chemin de chemin balai lorsque je supprime type: 'post' code> Ça fonctionne mais dans le contrôleur lorsque j'essaie d'afficher le nom de fichier, j'ai reçu un message d'erreur
non défini code>
J'utilise normalement un chemin relatif avec l'appel Ajax:
Ce n'est pas un problème de chemin balnéfause lorsque je supprime type: "post" code> Ça fonctionne mais dans le contrôleur lorsque j'essaie d'afficher le nom du fichier, j'ai reçu un message d'erreur "index non défini`
Pouvez-vous voir quelque chose dans votre contrôleur avec print_r ($ _ post); matrice (); code>?
C'est un tableau vide. Il semble que la Fonction ne puisse pas intercepter le post
On dirait que vous n'envoyez pas vos données correctement, vous pouvez vérifier avec console.dir (form_data) code> au lieu de votre alerte
(form_data) code>
Voici le résultat avec console.dir (form_data) formdata proto b>: formdata APPEND: ƒ APPEND () Supprimer: ƒ Supprimer () Entrées: ƒ Entrées () Foreach () Get: ƒ () Obtenir: ƒ ) Getall: ƒ Getall () a: ƒ a: ƒ a () clés: ƒ Touches () Set: ƒ () Valeurs: ƒ Valeurs () Constructeur: ƒ FormData () Symbole (Symbole.Étatator): ƒ Symbole () .Tostringtag): "formdata" proto b>: objet
Essayez d'ajouter un fichier comme celui-ci
Vous pouvez donner votre formulaire entier à et dans le Contrôleur Vérifiez l'entrée de fichier avec formdata () code> pour le traitement p>
_ fichiers code> pas
$ _ get code> ou
_ $ _ POST code> p>
print_r($_FILES['sortpic']);
Je l'ai fait mais j'ai reçu ce message d'erreur: form_data0 n'est pas défini code>
C'est un problème d'URL.
Lorsque je supprime type: 'post' code> je peux accéder au contrôleur
Essayez de donner à l'URL comme ceci url: " = Base_url (" processus ")?>" Code> et mettez
Data: form_data code> juste après l'URL
Définir Ajax comme celui-ci Votre URL indique base + 'Process' code> Cela signifie votre fonction d'index d'appel du processus code> . Et assurez-vous que votre URL de base dans
config.php code> se termine par une barre oblique (
/ code>) (
https://stackoverflow.com/ code>). Ainsi, l'URL devrait ressembler à ce p>
https://stackoverflow.com/process code> <- ici, vous n'avez pas spécifié le nom de la fonction. alors assurez-vous que dans votre contrôleur
index () code> est ajouté. p> p>
C'est un problème de sécurité (protection de la CSRF dans le codeigniter).
Nous devrions ajouter CSRF_Token sur des données avant de l'envoyer: ou désactiver la protection CSRF du fichier de configuration. P> p>
console la baseurl puis voyez ce que vous avez.
Ce n'est pas un problème de chemin balnéfause lorsque je supprime
type: 'post' code> je peux accéder au contrôleur