Flask实现跨域请求的处理方法


Posted in Python onSeptember 27, 2018

在Flask开发RESTful后端时,前端请求会遇到跨域的问题。下面是解决方法:

使用 flask-cors库可以很容易的解决

pip install flask-cors

两种方法,一个是全局/批量的,一个是单一独立的:

安全起见,一般来说使用独立的方式会常用一些。

1.独立方式

通过给路由添加@cross_origin标识即可

from flask import Flask, jsonify
from flask_cors import cross_origin

@app.route('/upload', methods=['POST', 'OPTIONS'])
@cross_origin()
def upload():
  # todo
  result_text = {"result": "True"}
  return jsonify(result_text)

2.全局方式

也很简单:

from flask import Flask
from flask_cors import CORS

if __name__ == '__main__':
  app.run(host='0.0.0.0', threaded=True, debug=True)
  CORS(app)

这样所有的路由都会支持跨域了。

3.批量方式

还有根据路由正则来批量控制等方式,更加灵活,可以查阅官方文档。

对请求的Response header中加入header

@app.after_request
def af_request(resp): 
"""
#请求钩子,在所有的请求发生后执行,加入headers。
:param resp:
:return:
"""
resp = make_response(resp)
resp.headers['Access-Control-Allow-Origin'] = '*'
resp.headers['Access-Control-Allow-Methods'] = 'GET,POST'
resp.headers['Access-Control-Allow-Headers'] = 'x-requested-with,content-type'
return resp

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python dict 字典 以及 赋值 引用的一些实例(详解)
Jan 20 Python
python构建自定义回调函数详解
Jun 20 Python
Python将多个excel文件合并为一个文件
Jan 03 Python
详解如何利用Cython为Python代码加速
Jan 27 Python
PYTHON基础-时间日期处理小结
May 05 Python
pybind11和numpy进行交互的方法
Jul 04 Python
Python 多个图同时在不同窗口显示的实现方法
Jul 07 Python
django admin.py 外键,反向查询的实例
Jul 26 Python
在脚本中单独使用django的ORM模型详解
Apr 01 Python
tensorflow2.0的函数签名与图结构(推荐)
Apr 28 Python
Python基于traceback模块获取异常信息
Jul 23 Python
基于python实现图片转字符画代码实例
Sep 04 Python
python环形单链表的约瑟夫问题详解
Sep 27 #Python
transform python环境快速配置方法
Sep 27 #Python
python如何求解两数的最大公约数
Sep 27 #Python
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题
Sep 27 #Python
python斐波那契数列的计算方法
Sep 27 #Python
python实现汉诺塔算法
Mar 01 #Python
Python3中bytes类型转换为str类型
Sep 27 #Python
You might like
截获网站title标签之家内容的例子
2006/10/09 PHP
PHP 危险函数解释 分析
2009/04/22 PHP
windows下apache搭建php开发环境
2015/08/27 PHP
thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例
2019/08/13 PHP
php判断目录存在的简单方法
2019/09/26 PHP
JQuery Tips(2) 关于$()包装集你不知道的
2009/12/14 Javascript
js中apply方法的使用详细解析
2013/11/04 Javascript
nodejs npm包管理的配置方法及常用命令介绍
2014/06/05 NodeJs
基于jQuery实现Ajax验证用户名是否存在实例
2016/03/30 Javascript
JavaScript实现窗口抖动效果
2016/10/19 Javascript
JavaScript字符串对象(string)基本用法示例
2017/01/18 Javascript
JS实现的tab切换选项卡效果示例
2017/02/28 Javascript
Bootstrap学习笔记之进度条、媒体对象实例详解
2017/03/09 Javascript
Vue父子模版传值及组件传值的三种方法
2017/11/27 Javascript
简单介绍react redux的中间件的使用
2018/04/06 Javascript
vue-cli+webpack项目打包到服务器后,ttf字体找不到的解决操作
2020/08/28 Javascript
Ajax获取node服务器数据的完整步骤
2020/09/20 Javascript
Python中无限元素列表的实现方法
2014/08/18 Python
Python中多线程thread与threading的实现方法
2014/08/18 Python
Python是编译运行的验证方法
2015/01/30 Python
人机交互程序 python实现人机对话
2017/11/14 Python
Python+matplotlib实现填充螺旋实例
2018/01/15 Python
python基于C/S模式实现聊天室功能
2019/01/09 Python
在Python3 numpy中mean和average的区别详解
2019/08/24 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
2021/02/07 Python
伯克斯奥特莱斯:Burkes Outlet
2019/03/30 全球购物
new修饰符是起什么作用
2015/06/28 面试题
掌上明珠Java程序员面试总结
2016/02/23 面试题
周年庆促销方案
2014/03/15 职场文书
2014年六一儿童节演讲稿
2014/05/23 职场文书
如何签定毕业生就业协议书
2014/09/28 职场文书
钳工实训报告总结
2014/11/04 职场文书
违纪学生保证书
2015/02/27 职场文书
2015年客房服务员工作总结
2015/05/15 职场文书
通知怎么写?
2019/04/17 职场文书
简单聊一聊SQL注入及防止SQL注入
2022/03/23 MySQL