Lösen von Problemen mit POST-Anfragen in Flask und Python
P粉476475551
2023-09-02 14:08:47
<p>
<pre class="brush:php;toolbar:false;">app = Flask(__name__)
CORS(App)
@app.post("/api/clients/")
def addClient():
data = open('./src/clients.json', 'w+')
client = json.load(data)
req = json.loads(request.data)
client.append(req)
json.dump(Clients, Daten)
data.close()
return req</pre>
<p>但是当我在浏览器中执行这个Javascript的<code>fetch()</code> API-Status: </p>
<pre class="brush:php;toolbar:false;">let u = "http://url/api/clients/n1/"
sei b = {
"Kunde": "n1",
"Details": {
"Adresse1": "Leitung1",
"Adresse2": "Zeile2",
"Stadt": "Stadt",
"E-Mail": "@",
"gst": "gstno"
}
}
const addStudent = async (us, c) => {
const Antwort = Warten auf fetch(us, {
Methode: "POST",
Überschriften: {
„Content-Type“: „application/json“,
},
Körper: c,
});
const data = Warten auf Antwort.json();
console.log(data);
};
addStudent(u, b);</pre>
<p>浏览器控制台显示以下错误:</p>
<blockquote>
<p>求,请将请求的模式设置为'no-cors'以禁用CORS获取资源。</p>
</blockquote>
<p>Zur Referenz: Dies sind die Fehler, die in der Flask-Befehlszeile erwähnt werden: </p>
<blockquote>
<p>127.0.0.1 – – [26. März 2023 18:09:05] „POST /api/clients/ HTTP/1.1“ 500 –
Traceback (letzter Anruf zuletzt):
Datei „E:All_CodesWEB_DEVexcel-o-metervenvlibsite-packagesflaskapp.py“, Zeile 2551, <strong>Call</strong>
return self.wsgi_app(environment, start_response)
Datei „E:All_CodesWEB_DEVexcel-o-metervenvlibsite-packagesflaskapp.py“, Zeile 2531, in wsgi_app
Antwort = self.handle_Exception(e)
Datei „E:All_CodesWEB_DEVexcel-o-metervenvlibsite-packagesflask_corsextension.py“, Zeile 165, in Wrapped_Function
Rückgabe cors_after_request(app.make_response(f(*args, **kwargs)))
Datei „E:All_CodesWEB_DEVexcel-o-metervenvlibsite-packagesflaskapp.py“, Zeile 2528, in wsgi_app
Antwort = self.full_dispatch_request()
Datei „E:All_CodesWEB_DEVexcel-o-metervenvlibsite-packagesflaskapp.py“, Zeile 1825, in full_dispatch_request
rv = self.handle_user_Exception(e)
Datei „E:All_CodesWEB_DEVexcel-o-metervenvlibsite-packagesflask_corsextension.py“, Zeile 165, in Wrapped_Function
Return cors_after_request(app.make_response(f(*args, **kwargs)))</p>
</blockquote>
<p><strong>Muss ich wie oben erwähnt einen bestimmten Header hinzufügen, oder liegt ein Fehler auf der Flask-Seite vor? </strong>
Die letzte Zeile in der Befehlszeile scheint einen CORS-Fehler auszugeben. </p>
你能否尝试一下并检查一下?
方法1
安装flask-cors
然后在应用程序初始化之后,使用默认参数初始化flask-cors:
更新
方法2
如果你不想使用任何额外的包,你也可以这样做
我建议请尝试使用以下代码来定义你的端点
而不是
参考链接 - Flask http methods