Résoudre les problèmes avec les requêtes POST dans Flask et Python
<p>
<pre class="brush:php;toolbar:false;">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</pre>
<p> API :</p>
<pre class="brush:php;toolbar:false;">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);</pre>
<p>浏览器控制台显示以下错误:</p>
<blockquote>
<p>访问'url/api/clients/'的fetch被阻止了, et 'null'没有'Access-Control-Allow-Origin'头.求,请将请求的Il s'agit de "no-cors" pour CORS.</p>
</blockquote>
<p>Pour référence, voici les erreurs mentionnées dans la ligne de commande Flask : </p>
<blockquote>
<p>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, <strong>Appel</strong>
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)))</p>
</blockquote>
<p><strong>Dois-je ajouter un en-tête spécifique comme mentionné ci-dessus, ou ai-je un bug du côté de Flask ? </strong>
La dernière ligne de la ligne de commande semble donner une erreur CORS. </p>