python - Flask 使用 CORS 服务静态文件夹

标签 python flask cors static-files

在我的前端应用程序中,我试图访问我在静态文件夹中提供的文件,但我遇到了 CORS 问题。我看到的问题是

Access to XMLHttpRequest at 'http://127.0.0.1:5000/static_folder/apple.xml' from origin 'http://localhost:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

我的后端 Flask 应用有以下设置

app = Flask(__name__, static_url_path='/static_folder', static_folder="static_folder")

似乎我需要在返回文件时将“Access-Control-Allow-Origin” header 添加到我的响应中。 Flask 是否有全局方式来设置它?

我试过使用 flask_cors 但没有成功

from flask_cors import CORS, cross_origin
app = Flask(__name__, static_url_path='/static_folder', static_folder="static_folder")
CORS(app)

通过将 CORS header 设置为

,我能够使用 SimpleHTTPRequestHandler 获得类似的效果
def end_headers (self):
        self.send_header('Access-Control-Allow-Origin', '*')
        SimpleHTTPRequestHandler.end_headers(self)

但我想使用 flask 来完成此任务,而不是启动一个简单的 http 服务器。

最佳答案

在 cors(app) 之后添加这些行:

@app.after_request
def after_request(response):
    response.headers.add('Access-Control-Allow-Headers', 'Content-Type, Authorization')
    response.headers.add('Access-Control-Allow-Methods', 'GET, POST, PATCH, DELETE, OPTIONS')
    return response

关于python - Flask 使用 CORS 服务静态文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59884338/

相关文章:

python - 为什么这个 z3 方程失败了?

postgresql - psycopg2无法连接到dockerized Python-Flask应用程序中的postgres数据库

python - 在Flask API上处理opencv图像(字节,编码为jpg)

node.js - 处理 Angular 5 服务发布请求中的离线服务器

javascript - 我的 Firefox 插件和跨域 https 的问题

python - viewflow.io : What is the recommended pattern to go a step back in a flow?

python - 当 bkgd 字符为curses.ACS_CKBOARD 时,文本显示损坏

python3.7.5 : round() behaves differently in seemingly equivalent cases?

python - 使用 wtforms SelectField 从表单中获取选定的文本

javascript - angularjs post方法中出现405错误