Carmineprince's Blog
首页
    • HTML
    • CSS
    • JavaScript
    • Vue
    • React
    • TypeScript
    • Node
    • Flutter
    • Electron
    • Python
    • 运维
    • 重学前端
  • 分类
  • 标签
  • 归档

Ziqi Wang

胡思乱想程序员
首页
    • HTML
    • CSS
    • JavaScript
    • Vue
    • React
    • TypeScript
    • Node
    • Flutter
    • Electron
    • Python
    • 运维
    • 重学前端
  • 分类
  • 标签
  • 归档
  • Flask项目构建基础
  • flask如何允许跨域
    • 1.安装flask-cors模块
    • 2.主路由部分增加设置
    • 3. CORS参数说明
  • 慕课网Python学习笔记

  • Python相关
carmineprince
2021-10-20

flask如何允许跨域

# 一、为什么会出现跨域问题

出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)

# 二、什么是跨域

当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域

# 三、flask中如何解决跨域问题

# 1.安装flask-cors模块

pip install flask-cors

# 2.主路由部分增加设置

如有蓝图一般在app的__init__中

# -*- coding=utf-8 -*-
from flask import Flask
from datetime import timedelta
import datetime
from flask_cors import *  # 导入模块


def create_app():
    app = Flask(__name__)
    CORS(app, supports_credentials=True)  # 设置跨域
    from .reduce import reduce
    app.register_blueprint(reduce)
    return app
1
2
3
4
5
6
7
8
9
10
11
12
13

# 3. CORS参数说明

参数 类型 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 预检请求的有效时长
#python#flask#跨域
上次更新: 10/21/2021, 1:52:09 PM
Flask项目构建基础
Python入门笔记1导学

← Flask项目构建基础 Python入门笔记1导学→

最近更新
01
pc端rem配置
03-02
02
使用动态变量ts报错的解决
02-25
03
React Hook详解
02-18
更多文章>
Theme by Vdoing | Copyright © 2021-2022 Carmineprince | 鲁ICP备2021046263号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式