Flask/Flask-CORS:缺少CORS标头"Access-Control-Allow-Origin" [英] Flask/Flask-CORS: CORS header ‘Access-Control-Allow-Origin’ missing
问题描述
我正在尝试链接一个 Flask后端具有 Vue.js前端的端口5000,端口8080在本地运行./p>
我能够成功注册和登录,但是无法在应用程序中提交文章,并且在浏览器控制台中出现以下错误.
跨域请求被阻止:同源策略禁止读取 http://localhost:5000上的远程资源/api/articles . (原因:CORS标头"Access-Control-Allow-Origin"缺失).
Flask后端使用Flask CORS(为每个蓝图初始化它们),并且我已将localhost/127.0.0.1来源提供给白名单.
#settings.py
CORS_ORIGIN_WHITELIST = [
'http://0.0.0.0:4100',
'http://localhost:4100',
'http://0.0.0.0:8000',
'http://localhost:8000',
'http://0.0.0.0:4200',
'http://localhost:4200',
'http://0.0.0.0:4000',
'http://localhost:4000',
'http://localhost:8080',
'http://0.0.0.0:8080',
'http://127.0.0.1:8080',
'http://192.168.100.6:8080',
'localhost'
]
#app.py
def register_blueprints(app):
"""Register Flask blueprints."""
origins = app.config.get('CORS_ORIGIN_WHITELIST', '*')
cors.init_app(user.views.blueprint, origins=origins)
cors.init_app(profile.views.blueprint, origins=origins)
cors.init_app(articles.views.blueprint, origins=origins)
app.register_blueprint(user.views.blueprint)
app.register_blueprint(profile.views.blueprint)
app.register_blueprint(articles.views.blueprint)
#extensions.py
cors = CORS()
任何帮助将不胜感激.
您是否尝试过将端口添加到localhost
条目?
#settings.py
CORS_ORIGIN_WHITELIST = [
'http://0.0.0.0:4100',
'http://localhost:4100',
'http://0.0.0.0:8000',
'http://localhost:8000',
'http://0.0.0.0:4200',
'http://localhost:4200',
'http://0.0.0.0:4000',
'http://localhost:4000',
'http://localhost:8080',
'http://0.0.0.0:8080',
'http://127.0.0.1:8080',
'http://192.168.100.6:8080',
'localhost:8080'
]
I'm trying to link a Flask backend, running locally on port 5000 with a Vue.js frontend, running locally on port 8080.
I'm able to successfully signup and login, but fail to submit an article in the app, with the following error in the browser console.
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:5000/api/articles. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).
The Flask backend uses Flask CORS (initializes them for every blueprint) and I've provided the localhost/127.0.0.1 origins to the whitelist.
#settings.py
CORS_ORIGIN_WHITELIST = [
'http://0.0.0.0:4100',
'http://localhost:4100',
'http://0.0.0.0:8000',
'http://localhost:8000',
'http://0.0.0.0:4200',
'http://localhost:4200',
'http://0.0.0.0:4000',
'http://localhost:4000',
'http://localhost:8080',
'http://0.0.0.0:8080',
'http://127.0.0.1:8080',
'http://192.168.100.6:8080',
'localhost'
]
#app.py
def register_blueprints(app):
"""Register Flask blueprints."""
origins = app.config.get('CORS_ORIGIN_WHITELIST', '*')
cors.init_app(user.views.blueprint, origins=origins)
cors.init_app(profile.views.blueprint, origins=origins)
cors.init_app(articles.views.blueprint, origins=origins)
app.register_blueprint(user.views.blueprint)
app.register_blueprint(profile.views.blueprint)
app.register_blueprint(articles.views.blueprint)
#extensions.py
cors = CORS()
Any help would be greatly appreciated.
Have you tried adding the port to the localhost
entry?
#settings.py
CORS_ORIGIN_WHITELIST = [
'http://0.0.0.0:4100',
'http://localhost:4100',
'http://0.0.0.0:8000',
'http://localhost:8000',
'http://0.0.0.0:4200',
'http://localhost:4200',
'http://0.0.0.0:4000',
'http://localhost:4000',
'http://localhost:8080',
'http://0.0.0.0:8080',
'http://127.0.0.1:8080',
'http://192.168.100.6:8080',
'localhost:8080'
]
这篇关于Flask/Flask-CORS:缺少CORS标头"Access-Control-Allow-Origin"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!