0
votes

Consultateur: Erreur 400 où l'envoi de fichier au serveur à l'aide d'Ajax

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: xxx

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


2 commentaires

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' je peux accéder au contrôleur


5 Réponses :


0
votes

à la place de la base URL Utilisez site_url () xxx

et maintenant xxx

supposant que vous avez activé URL ALPER IN config.php et vous avez un contrôleur processus avec index méthode >


1 commentaires

Ce n'est pas un problème de chemin de chemin balai lorsque je supprime type: 'post' Ç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



0
votes

J'utilise normalement un chemin relatif avec l'appel Ajax: xxx


5 commentaires

Ce n'est pas un problème de chemin balnéfause lorsque je supprime type: "post" Ç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 (); ?


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) au lieu de votre alerte (form_data)


Voici le résultat avec console.dir (form_data) formdata proto : 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 : objet



0
votes

Essayez d'ajouter un fichier comme celui-ci

​​Vous pouvez donner votre formulaire entier à formdata () code> pour le traitement p> xxx pré>

et dans le Contrôleur Vérifiez l'entrée de fichier avec _ fichiers code> pas $ _ get code> ou _ $ _ POST code> p>

print_r($_FILES['sortpic']);


4 commentaires

Je l'ai fait mais j'ai reçu ce message d'erreur: form_data0 n'est pas défini


C'est un problème d'URL.


Lorsque je supprime type: 'post' je peux accéder au contrôleur


Essayez de donner à l'URL comme ceci url: "" et mettez Data: form_data juste après l'URL



0
votes

Définir Ajax comme celui-ci xxx

Votre URL indique base + 'Process' Cela signifie votre fonction d'index d'appel du processus . Et assurez-vous que votre URL de base dans config.php se termine par une barre oblique ( / ) ( https://stackoverflow.com/ ). Ainsi, l'URL devrait ressembler à ce

https://stackoverflow.com/process <- ici, vous n'avez pas spécifié le nom de la fonction. alors assurez-vous que dans votre contrôleur index () est ajouté.


0 commentaires

0
votes

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: xxx

ou désactiver la protection CSRF du fichier de configuration.


0 commentaires