首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flask-CORS不是为POST工作,而是为GET工作

Flask-CORS不是为POST工作,而是为GET工作
EN

Stack Overflow用户
提问于 2016-09-18 03:32:05
回答 3查看 21.3K关注 0票数 25

我在本地运行一个Flask-Restful API,并从另一个端口发送一个包含JSON的POST请求。我得到了一个错误

代码语言:javascript
复制
No 'Access-Control-Allow-Origin' header is present on the requested resource.

但是,当我运行

代码语言:javascript
复制
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

我得到了

代码语言:javascript
复制
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

将"Access-Control-Allow-Origin“显示为"*”。GET运行得很好,只是POST导致了这个错误。会出什么问题呢?如果相关,对于前端,我通过axios使用react和requesting。

EN

回答 3

Stack Overflow用户

发布于 2017-03-01 16:00:54

你必须将CORS(app, resources={r"/*": {"origins": "*"}})添加到你的flask应用中。

希望这能解决问题。

票数 5
EN

Stack Overflow用户

发布于 2021-04-14 05:18:18

在我的例子中,CORS错误是由内部错误引发的。这是一个与CORS完全无关的错误,它应该返回500。

票数 3
EN

Stack Overflow用户

发布于 2019-08-31 13:12:48

Flask-Cors文档解释了为什么会发生这种情况

“当使用JSON跨源时,浏览器将为POST请求发出飞行前选项请求。为了使浏览器允许具有JSON内容类型的POST请求,您必须允许content -Type头。最简单的方法是在您的应用程序上设置CORS_HEADERS配置值:例如”

https://flask-cors.readthedocs.io/en/1.9.0/

代码语言:javascript
复制
app.config['CORS_HEADERS'] = 'Content-Type'
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39550920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档