flask_cros
时间: 2025-03-25 10:07:49 浏览: 40
### Flask 中处理 CORS 的方法
在 Flask 应用程序中,可以通过 `flask_cors` 扩展来解决跨源资源共享 (CORS) 问题。以下是几种常见的配置方式:
#### 全局配置
如果希望为整个应用程序启用 CORS 支持,则可以使用 `CORS` 类进行全局设置。通过这种方式,所有的路由都将自动支持跨域请求。
```python
from flask import Flask
from flask_cors import CORS
app = Flask(__name__)
CORS(app, resources=r'/*') # 配置资源路径以允许所有路由的跨域请求[^3]
@app.route('/api/data')
def get_data():
return {'data': 'Hello, CORS with global settings!'}
if __name__ == '__main__':
app.run(debug=True)
```
上述代码片段展示了如何为所有路由启用 CORS 支持,并允许来自任何域名的请求访问这些路由。
#### 局部配置
对于某些特定的视图函数或路由,可以选择性地为其单独启用 CORS 功能。这通常适用于不需要在整个应用范围内开放的情况。
```python
from flask import Flask, jsonify
from flask_cors import cross_origin
app = Flask(__name__)
@app.route('/api/specific-data', methods=['GET'])
@cross_origin() # 使用装饰器为单个路由开启CORS支持
def specific_data():
return jsonify({'message': 'This route supports CORS.'})
if __name__ == '__main__':
app.run(debug=True)
```
在此示例中,仅 `/api/specific-data` 路由被赋予了跨域权限,而其他未标记的路由则不会受到影响。
#### 增强安全性
当需要更精细控制时,比如只允许指定来源或者携带凭证(如 Cookies),可通过传递额外参数给 `CORS` 或者 `@cross_origin()` 来实现增强的安全措施。
```python
from flask import Flask
from flask_cors import CORS
app = Flask(__name__)
CORS(app, origins=["https://example.com"], supports_credentials=True) # 设置可信任的来源并支持带认证信息的请求[^2]
@app.route('/api/secure-data')
def secure_data():
return {"status": "Access granted"}
if __name__ == '__main__':
app.run(debug=True)
```
此段代码设置了受信站点列表以及启用了对带有凭据请求的支持,从而提高了系统的安全等级。
---
阅读全文
相关推荐
















