在 Flask 中解决跨域问题可以通过使用跨域资源共享(CORS)机制来实现。CORS 允许在浏览器中跨域访问服务器资源。
要在 Flask 中启用跨域支持,你可以使用 Flask-CORS 扩展或手动设置 CORS 标头。以下是两种方法的示例。
方法一:使用 Flask-CORS 扩展
- 安装 Flask-CORS:使用以下命令进行安装:
pip install flask-cors
- 在 Flask 应用程序中导入并初始化 Flask-CORS 扩展:
from flask import Flask
from flask_cors import CORS
app = Flask(__name__)
CORS(app)
以上代码将在应用程序中启用默认的 CORS 设置,允许所有来源、所有请求方法的跨域访问。你还可以按需配置更多选项,例如只允许特定来源或请求方法,具体请参考 Flask-CORS 文档。
方法二:手动设置 CORS 标头
- 在你的 Flask 视图函数中添加一个装饰器来设置跨域标头:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
response = make_response('Hello, World!')
response.headers['Access-Control-Allow-Origin'] = '*' #设置允许所有来源访问
response.headers['Access-Control-Allow-Methods'] = 'GET, POST, PATCH, DELETE' #设置允许的请求方法
response.headers['Access-Control-Allow-Headers'] = 'Content-Type,Authorization' #设置允许的请求头
return response
你可以根据需要调整 Access-Control-Allow-Origin、Access-Control-Allow-Methods 和 Access-Control-Allow-Headers 标头的值。
无论你选择哪种方法,都应该仔细考虑设置跨域访问的安全性。在生产环境中,最好只允许来自受信任的来源进行跨域访问,并仅允许必要的请求方法和请求头。