Je développe une application web utilisant "jQuery" (front-end) et "Python" (back-end). Lors d'une demande PUT pour mettre à jour les détails de la base de données, voici l'erreur que j'obtiens dans la console:
OPTIONS "REST API URL" net :: ERR_CONNECTION_REFUSED
Mon code jQuery est:
$.ajax({
type: "PUT",
url: "REST API URL",
headers: {"Content-Type": "application/json", "Authorization": AuthToken},
data: "details to be updated in database",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data,status) {
//do something with data
},
error: function(data,status) {
//show error data and status
}
)};
J'ai lu comment les requêtes HTTP autres que GET
et POST
sont d'abord prévalues en tant que demande OPTIONS et que lorsque c'est une demande authentique, elles sont traitées comme PUT/DELETE/PATCH
demande.
J'ai vu des solutions où il était possible que ce soit un problème de CORS
, mais CORS
est activé depuis le back-end pour autoriser GET/POST/PUT/PATCH/DELETE
demandes. De plus, je suis en mesure de faire avec succès des demandes GET
et POST
mais aucune demande PUT
n'est en cours.
J'utilise "Chrome Dev Tools" et j'ai recherché comment corriger cette erreur pour Chrome en effaçant le cache et les cookies, en vidant DNS et en réinstallant Chrome mais aucune des solutions n'a fonctionné jusqu'à présent.
Je fais une interface utilisateur frontale et je ne sais pas s'il s'agit d'une erreur côté client ou d'une erreur côté serveur?
Toute aide serait appréciée.
Une chose est sûre, c'est un problème de backend. Cela se produit lorsque la communication croisée d'origine entre le backend et le frontend n'est pas correctement connectée. Étant donné que vous avez importé des cors et configuré le middleware, vous avez probablement fait une erreur en utilisant la méthode PUT en termes d'URL d'origine et d'URL de demande.
Choses que vous pouvez faire:
1) Assurez-vous que les deux serveurs fonctionnent (back-end et front-end).
2) Regardez dans l'outil de développement Google et consultez la section réseau. Regardez les en-têtes de demande et le général. Assurez-vous que RL de demande/backend a l'URL de votre serveur backend et orgin/frontend a votre URL de frontend.
3) Assurez-vous que dans votre méthode http.put (), le domaine que vous alimentez correspond à l'API que vous avez configurée sur votre serveur.
4) Votre problème est que votre backend n'est pas correctement connecté à votre frontal, alors ne perdez pas votre temps à essayer de trouver d'autres erreurs. Concentrez-vous sur le débogage de la méthode http.put () et du module cors et du middleware que vous avez importés.
Étant donné que c'est vraiment un problème CORS - les navigateurs "contrôlent" la demande en utilisant la méthode OPTIONS. Après la demande OPTIONS réussit la demande réelle (dans votre cas PUT) est faite.
Assurez-vous que le backend répond aux requêtes OPTION. Vous pouvez facilement intercepter toutes les demandes OPTION et renvoyer 200 OK
ou 204 NO CONTENT
.