hat*_*oku 9 python cors flask flask-cors axios
我在本地运行Flask-Restful API并从不同的端口发送包含JSON的POST请求.我收到了错误
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Run Code Online (Sandbox Code Playgroud)
但是,当我跑
curl --include -X OPTIONS http://localhost:5000/api/comments/3
--header Access-Control-Request-Method:POST
--header Access-Control-Request-Headers:Content-Type
--header Origin:http://localhost:8080
Run Code Online (Sandbox Code Playgroud)
我明白了
HTTP/1.0 200 OK
Content-Type: text/html; charset=utf-8
Allow: HEAD, GET, POST, OPTIONS
Access-Control-Allow-Origin: http://localhost:8080
Access-Control-Allow-Methods: DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT
Vary: Origin
Access-Control-Allow-Headers: Content-Type
Content-Length: 0
Run Code Online (Sandbox Code Playgroud)
其中"Access-Control-Allow-Origin"显示为"*".GET工作正常,只是POST给出了这个错误.怎么可能出错?如果相关,对于我正在使用的前端做出反应并通过axios请求.
您必须添加CORS(app, resources={r"/*": {"origins": "*"}})到您的烧瓶应用程序中。
希望能解决这个问题。
小智 5
Flask-Cors 文档解释了为什么会发生这种情况
“使用 JSON 跨源时,浏览器将为 POST 请求发出预检 OPTIONS 请求。为了让浏览器允许具有 JSON 内容类型的 POST 请求,您必须允许 Content-Type 标头。最简单的方法是只需在应用程序上设置 CORS_HEADERS 配置值:例如“
https://flask-cors.readthedocs.io/en/1.9.0/
app.config['CORS_HEADERS'] = 'Content-Type'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5493 次 |
| 最近记录: |