Flask解决跨域问题 您所在的位置:网站首页 卫浴下面的软管这么换啊 Flask解决跨域问题

Flask解决跨域问题

2024-03-16 07:06| 来源: 网络整理| 查看: 265

什么是跨域问题 跨域问题指的是浏览器限制了从一个源(协议、域名、端口)访问另一个源的资源的行为,这个限制是浏览器的一个安全机制。如果一个网页从一个源加载了另一种类型的资源(例如 HTML、CSS、脚本或图像)但是资源的来源是不同的源,那么就会发生跨域问题。 当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域 当前页面url 被请求页面url 是否跨域 原因 http://www.xxma.com/ http://www.xxma.com/index 否 同源(协议、域名、端口号相同) http://www.xxma.com/ https://www.xxma.com/ 是 协议不同(http/https) http://www.xxma.com/ http://www.xm.com/ 是 主域名不同 http://www.xxma.com/ http://cnblog.xxma.com/ 是 子域名不同 http://www.xxma.com:8080/ http://www.xxma.com:8081/ 是 端口号不同 实际解决 1.下载flask_cors 包 pip install flask-cors 2.使用flask_cors的CORS

app初始化的时候就加载配置

from flask import Flask from flask_cors import CORS app = Flask(__name__) # r'/*' 是通配符,让本服务器所有的 URL 都允许跨域请求 CORS(app, resources=r'/*') if __name__ == "__main__": app.run() 配置参数说明 参数 类型 Head字段 说明 resources 字典、迭代器或字符串 无 全局配置允许跨域的API接口 origins 列表、字符串或正则表达式 Access-Control-Allow-Origin 配置允许跨域访问的源 *表示全部允许 methods 列表、字符串 Access-Control-Allow-Methods 配置跨域支持的请求方式,如:GET、POST expose_headers 列表、字符串 Access-Control-Expose-Headers 自定义请求响应的Head信息 allow_headers 列表、字符串或正则表达式 Access-Control-Request-Headers 配置允许跨域的请求头 supports_credentials 布尔值 Access-Control-Allow-Credentials 是否允许请求发送cookie,false是不允许 max_age 整数、字符串 Access-Control-Max-Age 预检请求的有效时长 3.在被请求的Response header中加入header middlewares.py中加入 def add_cors_headers(response: Flask.response_class) -> Flask.response_class: response.headers.set("Access-Control-Allow-Origin", "*") response.headers.set("Access-Control-Allow-Headers", "*") response.headers.set("Access-Control-Allow-Methods", "*") return response # 在请求上下文中添加中间件函数 def setup_middlewares(app: Flask) -> None: app.after_request(add_cors_headers)


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有