0
votes

PHP API envoie http_reesponse_code (400) quoi que ce soit

J'ai écrit une simple API de crud PHP et je reçois http_response_code (400) Peu importe ce que je fais.

dans l'API Un fichier nommé Create.php est responsable de l'insertion de nouveaux éléments Dans la base de données, il vérifie si les données qu'il reçoivent d'Ajax n'est pas vide, puis procédez à la création si elle est vide, il envoie un http_response_code (400) .

mais, peu importe Ce que je fais, il envoie toujours le http_response_code (400) même si les données ne sont pas vides.

Je pensais que le problème venait d'Ajax en premier, mais après le débogage, j'ai découvert que Ajax En fait, obtient les données appropriées de la forme et l'envoie.

voici mon fichier create.php xxx

et voici mon ajax: xxx

Après avoir rempli le formulaire et la soumission au lieu d'ajouter l'entrée à la base de données et d'envoyer un 201 ok Cela me montre l'erreur suivante: xxx

et c'est le résultat de mon console.log xxx

la chose étrange est quand je commission Ent le http_response_code (400) ligne dans mon Créer.php Le fichier Ça fonctionne parfaitement quelqu'un a une idée de la cause de ce comportement?


1 commentaires

Pouvez-vous var_dump ($ données) juste avant votre si et montrez-vous ce qu'il dit?


3 Réponses :


0
votes

Essayez de mettre en-tête () dans votre fichier create.php: xxx


2 commentaires

J'ai oublié de dire que j'ai déjà la tête identique à celle que vous avez postée


[Thu Sep 12 08:21:07 2019] :: 1: 13610 [400]: /Consumable/create.php



0
votes

json_decode retourne null s'il ne peut pas le décoder. Il semble que ce soit juste ça. Peut-être avez-vous besoin de url_decode et / ou Stripslashes le contenu avant de pouvoir le décoder. Comme Ahmed dit, essayez de générer la variable $ et la sortie du json_decode et file_get_contents ("PHP: // entrée"); Et vous verrez l'erreur assez tôt.

Sachez également que ! vide (0) et ! vide (false) retourne vrai . Donc, si votre variable a une valeur qui est 0 ou false, il retournera également 400 dans ce cas. Ce n'est pas le problème dans votre exemple, mais pourrait devenir un problème plus tard.


0 commentaires

0
votes

Le problème a été causé par le fait que le type dans mes en-têtes était application / json et j'utilisais Postman pour tester et je l'avais laissé à défaut Type de contenu qui est texte


0 commentaires