app = Flask(__name__) CORS (application) @app.post("/api/clients/") def addClient() : données = ouvert('./src/clients.json', 'w+') clients = json.load (données) req = json.loads (requête.données) clients.append(req) json.dump (clients, données) données.close() return req
API :
let u = "http://url/api/clients/n1/" soit b = { "client": "n1", "détails" : { "adresse1": "Ligne1", "adresse2": "ligne2", "ville": "ville", "e-mail" : "@", "tps": "gstno" } } const addStudent = async (us, c) => { réponse const = attendre chercher (nous, { méthode : "POST", en-têtes : { "Content-Type": "application/json", }, corps : c, }); const data = attendre réponse.json(); console.log(données); } ; addStudent(u, b);
浏览器控制台显示以下错误:
访问'url/api/clients/'的fetch被阻止了, et 'null'没有'Access-Control-Allow-Origin'头.求,请将请求的Il s'agit de "no-cors" pour CORS.
Pour référence, voici les erreurs mentionnées dans la ligne de commande Flask :
127.0.0.1 - - [26 mars 2023 18:09:05] "POST /api/clients/ HTTP/1.1" 500 - Traceback (dernier appel le plus récent) : Fichier 'E:All_CodesWEB_DEVexcel-o-metervenvlibsite-packagesflaskapp.py', ligne 2551, Appel retourner self.wsgi_app (environnement, start_response) Fichier "E:All_CodesWEB_DEVexcel-o-metervenvlibsite-packagesflaskapp.py", ligne 2531, dans wsgi_app réponse = self.handle_exception(e) Fichier 'E:All_CodesWEB_DEVexcel-o-metervenvlibsite-packagesflask_corsextension.py', ligne 165, dans enveloppé_function Renvoie cors_after_request(app.make_response(f(*args, **kwargs))) Fichier "E:All_CodesWEB_DEVexcel-o-metervenvlibsite-packagesflaskapp.py", ligne 2528, dans wsgi_app réponse = self.full_dispatch_request() Fichier "E:All_CodesWEB_DEVexcel-o-metervenvlibsite-packagesflaskapp.py", ligne 1825, dans full_dispatch_request rv = self.handle_user_exception(e) Fichier 'E:All_CodesWEB_DEVexcel-o-metervenvlibsite-packagesflask_corsextension.py', ligne 165, dans enveloppé_function Renvoie cors_after_request(app.make_response(f(*args, **kwargs)))
Dois-je ajouter un en-tête spécifique comme mentionné ci-dessus, ou ai-je un bug du côté de Flask ? La dernière ligne de la ligne de commande semble donner une erreur CORS.
Pouvez-vous l'essayer et le vérifier ?
Méthode 1
Installer flask-cors
Puis une fois l'application initialisée, initialisez flask-cors avec les paramètres par défaut :
Mise à jour
Méthode 2
Si vous ne souhaitez pas utiliser de packages supplémentaires, vous pouvez le faire également
Je suggère d'essayer d'utiliser le code suivant pour définir votre point de terminaison
au lieu de
Lien de référence -Méthodes http Flask