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 不同对象比较大小示例探讨
Aug 21 Python
OpenCV+python手势识别框架和实例讲解
Aug 03 Python
解决Pyinstaller 打包exe文件 取消dos窗口(黑框框)的问题
Jun 21 Python
python和c语言的主要区别总结
Jul 07 Python
Django发送邮件功能实例详解
Sep 02 Python
python使用opencv实现马赛克效果示例
Sep 28 Python
Python 迭代,for...in遍历,迭代原理与应用示例
Oct 12 Python
python基于K-means聚类算法的图像分割
Oct 30 Python
对tensorflow中的strides参数使用详解
Jan 04 Python
python__new__内置静态方法使用解析
Jan 07 Python
Python ORM框架Peewee用法详解
Apr 29 Python
python turtle绘制多边形和跳跃和改变速度特效
Mar 16 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
在IIS上安装PHP4.0正式版
2006/10/09 PHP
php实现aes加密类分享
2014/02/16 PHP
10个实用的PHP正则表达式汇总
2014/10/23 PHP
javascript some()函数用法详解
2014/11/13 PHP
Nigma vs Alliance BO5 第三场2.14
2021/03/10 DOTA
JS自动适应的图片弹窗实例
2013/06/29 Javascript
JS获得选取checkbox整行数据的方法
2015/01/28 Javascript
json实现添加、遍历与删除属性的方法
2016/06/17 Javascript
jQuery中get方法用法分析
2016/12/07 Javascript
nodejs动态创建二维码的方法
2017/08/12 NodeJs
js数组去重的方法总结
2019/01/18 Javascript
JS添加或删除HTML dom元素的方法实例分析
2019/03/05 Javascript
vue 动态添加class,三个以上的条件做判断方式
2020/11/02 Javascript
[10:42]Team Liquid Vs Newbee
2018/06/07 DOTA
使用Python操作Elasticsearch数据索引的教程
2015/04/08 Python
python图像处理之反色实现方法
2015/05/30 Python
独特的python循环语句
2016/11/20 Python
Python中BeautifuSoup库的用法使用详解
2019/11/15 Python
Numpy之将矩阵拉成向量的实例
2019/11/30 Python
Python彻底删除文件夹及其子文件方式
2019/12/23 Python
利用python实现.dcm格式图像转为.jpg格式
2020/01/13 Python
VSCode基础使用与VSCode调试python程序入门的图文教程
2020/03/30 Python
使用python脚本自动生成K8S-YAML的方法示例
2020/07/12 Python
如何使用python-opencv批量生成带噪点噪线的数字验证码
2020/12/21 Python
新奇的小玩意:IWOOT
2016/07/21 全球购物
新加坡网上花店:FlowerAdvisor新加坡
2018/10/05 全球购物
同程旅游英文网站:LY.com
2018/11/13 全球购物
现代化办公人员工作的自我评价
2013/10/16 职场文书
面料业务员岗位职责
2013/12/26 职场文书
书香家庭事迹材料
2014/05/09 职场文书
党的群众路线教育学习材料
2014/05/12 职场文书
求职信怎么写
2014/05/23 职场文书
放弃遗产继承公证书
2015/01/26 职场文书
会计求职自荐信
2015/03/26 职场文书
整脏治乱工作简报
2015/07/21 职场文书
2016教师给学生的毕业寄语
2015/12/04 职场文书