python 解决Flask使用的跨域问题

一、引入库

pip install flask-cors

二、配置

  flask-cors 有两种用法,一种为全局使用,一种对指定的路由使用

  1. 使用 CORS函数 配置全局路由

from flask import Flask, request
from flask_cors import CORS

app = Flask(__name__)
CORS(app, supports_credentials=True)
#其中 CORS 提供了一些参数帮助我们定制一下操作。

#常用的我们可以配置 origins、methods、allow_headers、supports_credentials


  2. 使用 @cross_origin 来配置单行路由

from flask import Flask, request
from flask_cors import cross_origin

app = Flask(__name__)


@app.route('/')
@cross_origin(supports_credentials=True)
def hello():
name = request.args.get("name", "World")
return f'Hello, {name}!'

#其中 cross_origin 和 CORS 提供一些基本相同的参数。

#常用的我们可以配置 origins、methods、allow_headers、supports_credentials

 

三、配置参数说明

参数类型Head默认说明
resources 字典、迭代器或字符串 全部 配置允许跨域的路由接口
origins 列表、字符串或正则表达式 Access-Control-Allow-Origin * 配置允许跨域访问的源
methods 列表、字符串 Access-Control-Allow-Methods [GET, HEAD, POST, OPTIONS, PUT, PATCH, DELETE] 配置跨域支持的请求方式
expose_headers 列表、字符串 Access-Control-Expose-Headers None 自定义请求响应的Head信息
allow_headers 列表、字符串或正则表达式 Access-Control-Request-Headers * 配置允许跨域的请求头
supports_credentials 布尔值 Access-Control-Allow-Credentials False 是否允许请求发送cookie
max_age timedelta、整数、字符串 Access-Control-Max-Age None 预检请求的有效时长

 

posted @ 2022-07-15 15:45  渐逝的星光  阅读(641)  评论(0编辑  收藏  举报