Solution" />
Bonjour☕️, mes collègues développeurs ??. J'espère que vous allez bien parce que je vais bien. Aujourd'hui, j'ai décidé de venir en aide à certains d'entre vous qui subissent la Méthode 405 non autorisée. Que vous créiez des API REST ou demandiez l'URL, vous obtenez l'erreur 405. Cet article vous a couvert.
J'ai essayé de demander mon URL et j'obtenais l'erreur mentionnée ci-dessus
Voici l'URL que je demandais
http://localhost:8080/users/services/start/import
@Path("/start") public class StartService { @GET @Path("/import") @Produces({"text/plain","application/xml","application/json"}) public String getVersion() { String ver=""; try{ Runtime rt = Runtime.getRuntime(); Process pr = rt.exec("C:\server\dgr -v" ); BufferedReader stdInput = new BufferedReader(new InputStreamReader (pr.getInputStream())); BufferedReader input = new BufferedReader(stdInput); // String ver =""; StringBuffer verOutput = new StringBuffer(); while((ver = input.readLine()) != null){ verOutput.append(ver + "\n"); System.out.println(ver); } }catch (Throwable t) { t.printStackTrace(); } finally { } return ver; } }
Dans mon enquête sur la cause et la solution de l'erreur, j'ai découvert que l'erreur 405 peut se produire lorsque vous essayez une requête Get sur quelque chose qui n'autorise qu'une requête POST ou VSV.
Deuxièmement, vous avez peut-être essayé http : sur une méthode qui nécessite https
J'ai découvert que la cause de l'erreur était un problème de type de contenu
Changé ceci @Produces({"text/plain","application/xml","application/json"})
à ça
@Produces("text/plain") et cela a parfaitement fonctionné.
En effet, les en-têtes/types de contenu envoyés à l'API doivent correspondre à ce qu'elle attend, sinon elle renverra HTTP 405.
Visitez ce lien pour en savoir plus sur ce type d'erreur
Quelques zones possibles à vérifier si vous rencontrez la même erreur
Problèmes CORS :
Si votre frontend et votre backend fonctionnent sur des ports différents (par exemple, frontend sur 4200 et backend sur 8080), assurez-vous que CORS (Cross-Origin Resource Sharing) est correctement configuré sur votre serveur backend pour autoriser les requêtes provenant de l'origine de votre frontend3.
Réponses du serveur de débogage :
Implémentez la journalisation côté serveur pour capturer les demandes entrantes et leurs méthodes. Cela peut vous aider à déterminer si la demande atteint le serveur et comment elle est traitée.
Test avec des outils :
Utilisez des outils comme Postman ou cURL pour envoyer manuellement une requête POST à votre point de terminaison. Cela peut aider à déterminer si le problème réside dans votre application Angular ou sur le serveur lui-même.
Partagez vos réflexions dans les commentaires ci-dessous⬇️
Passez un bon mardi ??
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!